我无法理解"分布式任务队列"的用途.例如,python的芹菜库.
我知道在celery,python框架中,你可以设置定时窗口来执行函数.但是,这也可以在针对python脚本的linux crontab中轻松完成.
据我所知,并且从我自己的django-celery webapps中显示,芹菜消耗的RAM内存比设置原始crontab要多得多.一个相对较小的应用程序几百MB差异.
有人可以帮助我这个区别吗?也许对任务队列/ crontabs如何工作的高级解释也很好.
谢谢.
这是来自django的文档:
Field.unique
如果为True,则该字段在整个表中必须是唯一的.
这在数据库级别和模型验证中强制执行.如果您尝试在唯一字段中保存具有重复值的模型,则模型的save()方法将引发django .db.IntegrityError.
这是我的models.py
class MyModel(models.Model):
# my pk is an auto-incrementing field
url = models.URLField("URL", unique=True)
text = models.TextField(max_length=1000)
# my model is just two fields, one pk (unique), and another unique field,
#, the url
Run Code Online (Sandbox Code Playgroud)
这是我的manage.py sqlall(我运行了syncdb)
CREATE TABLE `MyModel_mymodel` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`url` varchar(200) NOT NULL UNIQUE,
`text` varchar(1000) NOT NULL,
Run Code Online (Sandbox Code Playgroud)
但是,在manage.py shell中,我可以自由地执行此操作:
>>> from MyModel.models import MyModel
>>> MyModel().save() # it works fine!? Not even the text was checked …
Run Code Online (Sandbox Code Playgroud) 这是我的base.html标头中的代码
<script>
var auth_status = "{{ user.is_authenticated }}"
</script>
{% block scripts %} {% endblock %}
Run Code Online (Sandbox Code Playgroud)
我站点中的其余脚本都在块脚本中.
在子模板中(在脚本块内和脚本标记内)我有这个代码,
if (auth_status) {
//something
}
Run Code Online (Sandbox Code Playgroud)
手头的错误是auth_status始终为True,当它应该打开和关闭时,具体取决于用户是否登录.Request_context正在传递给模板,因此不应该是错误.
谢谢
这是来自queryset iterator()
方法的django文档:
QuerySet通常在内部缓存其结果,以便重复的计算不会导致其他查询.相反,iterator()将直接读取结果,而不在QuerySet级别执行任何缓存(在内部,默认迭代器调用iterator()并缓存返回值).对于返回大量只需要访问一次的大量对象的QuerySet,这可以带来更好的性能并显着降低内存.
阅读之后,我仍然感到困惑:关于性能提升和内存减少的一线表明我们应该使用这种iterator()
方法.有人可以提供一些好的和坏的案例iterator()
使用的例子吗?
即使查询结果没有被缓存,如果他们真的想多次访问模型,有人只能做以下事情吗?
saved_queries = list(Model.objects.all().iterator())
Run Code Online (Sandbox Code Playgroud) 这个问题现在已经发生了几个星期,而且与我的项目提出的不同.
使用的两个模型具有时间戳字段,默认情况下设置为timezone.now()
.
这是引发错误标志的序列:
模型一在下午7:30创建
模型二是在晚上10点创建的,但在MySQL数据库中它存储为晚上7:30!
创建的每个模型的时间戳都保存在下午7:30,而不是实际时间,直到某个持续时间过去.然后设置一个新的时间,所有以下模型都有新的时间... Bizzare
一些额外的细节可能有助于发现问题:
我有一堆方法可以剥离我们的时区,tzinfo
并用UTC替换它们.
这是因为我正在进行timezone.now() - creationTime
计算以创建:"模型在很久以前发布"功能在项目中.但是,这确实不应该是问题的原因.
我认为使用datetime.datetime.now()
不会产生任何影响.
无论如何,谢谢你的帮助!
这是我目前服务robots.txt的方法
url(r'^robots\.txt/$', TemplateView.as_view(template_name='robots.txt',
content_type='text/plain')),
Run Code Online (Sandbox Code Playgroud)
我不认为这是最好的方式.我认为如果它只是一个纯粹的静态资源并静态服务会更好.但我的django应用程序的结构方式是静态根和所有后续静态文件都位于
http://my.domain.com/static/stuff-here
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?我是django的业余爱好者
TemplateView.as_view(template_name='robots.txt',
content_type='text/plain')
Run Code Online (Sandbox Code Playgroud)
看起来比在nginx上提供的静态目录的静态调用消耗更多的资源.
对不起,如果这是一个非常基本的问题,但为什么正面有一个减号?
是否与零存储或其他东西有关?我认为为二进制计算最高可能的十进制数只是为了增加2的幂,就像3位无符号它将是
1*2^0 + 1*2^1 + 1*2^2 = 7
Run Code Online (Sandbox Code Playgroud)
不应该相同的规则适用于java整数?谢谢
django分页有一些代码示例,我曾经使用过一段时间.我可能错了,但在查看代码时,它看起来好像浪费了大量的内存.我一直在寻找更好的解决方案,这里是代码:
# in views.py
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
...
...
def someView():
models = Model.objects.order_by('-timestamp')
paginator = Paginator(models, 7)
pageNumber = request.GET.get('page')
try:
paginatedPage = paginator.page(pageNumber)
except PageNotAnInteger:
pageNumber = 1
except EmptyPage:
pageNumber = paginator.num_pages
models = paginator.page(pageNumber)
return render_to_resp ( ..... models ....)
Run Code Online (Sandbox Code Playgroud)
我不确定这段代码的细节,但从它的外观来看,第一行代码从数据库中检索每一个模型并将其推入.然后,它被传递到分页程序这豆腐块它基于该页面的用户是从一个HTML的GET.分页符是否以某种方式使这个可以接受,或者这完全是内存效率低下的?如果效率低下,怎么改进?
另外,一个相关的主题.如果有人这样做:
Model.objects.all()[:40]
Run Code Online (Sandbox Code Playgroud)
这段代码是否意味着所有模型都被推入内存,我们将其中的40个拼凑出来?这很糟糕.或者它是否意味着我们只查询并将40个对象推入内存期?
谢谢您的帮助!
Django演示了如何在文档中使用外键设置或覆盖级联删除.
model = models.ForeignKey(MyModel, null = True, on_delete = models.SET_NULL)
Run Code Online (Sandbox Code Playgroud)
但是如果我们想要这种效果呢?如果我们想删除fk模型导致删除此模型怎么办?
谢谢
我知道这个问题看起来像是重复的但是我已经遵循了许多关于如何正确安装PIL的在线说明,但没有一个有效.
我已经尝试了一切:Python Image Library失败,消息"解码器JPEG不可用" - PIL没有成功.
当我运行sudo pip install pil时,最糟糕的是,有一个误导性的错误.Jpeg,Freetyle等支持全部列为可用.但是当使用PIL运行一些python代码时,出现了"解码器jpeg不可用"的臭名昭着的IOError.
即使在将.so libjpeg文件符号链接到/ usr/lib之后,也没有任何工作.
有任何想法吗?谢谢.
django ×8
python ×8
celery ×1
integer ×1
iterator ×1
java ×1
javascript ×1
jpeg ×1
memory ×1
mysql ×1
orm ×1
pagination ×1
querying ×1
robots.txt ×1
templates ×1