我想从django视图发送JSON本地化日期
普通文本翻译
ugettext
没关系
以下代码视图无效:
translation.activate("ru")
print datetime.now().strtime("%B")
Run Code Online (Sandbox Code Playgroud)
输出是"八月",而不是" Август "
我读到了关于python的"locale"模块,但它被命名为线程不安全
如何强制strftime使用django的语言环境?
我有两种任务:Type1 - 一些高优先级的小任务.Type2 - 优先级较低的繁重任务.
最初我使用默认路由进行简单配置,但没有使用路由密钥.这还不够 - 有时候所有工作人员都在忙于Type2任务,所以Task1被推迟了.我添加了路由键:
CELERY_DEFAULT_QUEUE = "default"
CELERY_QUEUES = {
"default": {
"binding_key": "task.#",
},
"highs": {
"binding_key": "starter.#",
},
}
CELERY_DEFAULT_EXCHANGE = "tasks"
CELERY_DEFAULT_EXCHANGE_TYPE = "topic"
CELERY_DEFAULT_ROUTING_KEY = "task.default"
CELERY_ROUTES = {
"search.starter.start": {
"queue": "highs",
"routing_key": "starter.starter",
},
}
Run Code Online (Sandbox Code Playgroud)
所以现在我有2个队列 - 具有高优先级和低优先级的任务.
问题是 - 如何使用不同的并发设置启动2 celeryd?
以前celery用于守护进程模式(根据这个),所以只/etc/init.d/celeryd start 需要启动,但现在我必须运行具有不同队列和并发性的2个不同的芹菜.我该怎么做?
我有一个使用mongo存储短生活数据的应用程序.超过45分钟的所有数据都将通过以下脚本删除:
oldSearches = [list of old searches]
connection = Connection()
db = connection.searchDB
res = db.results.remove{'search_id':{"$in":oldSearches}})
Run Code Online (Sandbox Code Playgroud)
我查了一下现状 -
>db.results.stats()
{
"ns" : "searchDB.results",
"count" : 2865,
"size" : 1003859656,
"storageSize" : 29315124464,
"nindexes" : 1,
"ok" : 1
}
Run Code Online (Sandbox Code Playgroud)
因此,根据这1GB的数据占用29GB的存储空间.数据文件夹看起来像这样(您可能会看到很多文件都很旧 - 最后一次访问的时间是5月):
ls -l /var/lib/mongodb/
total 31506556
-rwxr-xr-x 1 mongodb nogroup 6 2011-06-05 18:28 mongod.lock
-rw------- 1 mongodb nogroup 67108864 2011-05-13 17:45 searchDB.0
-rw------- 1 mongodb nogroup 134217728 2011-05-13 14:45 searchDB.1
-rw------- 1 mongodb nogroup 2146435072 2011-05-20 20:45 searchDB.10
-rw------- …Run Code Online (Sandbox Code Playgroud) 如何制作"手动"select_related模仿以避免不良的数据库命中?
我们有:
class Country:
name = CharField()
class City:
country = models.ForeignKey(Country)
name = models.CharField()
cities = City.objects.raw("select * from city inner join country on city.country_id = country.id where name = 'london'")
#this will hill hit DB
print cities[0].country.name
Run Code Online (Sandbox Code Playgroud)
如何告诉django相关模型已经被提取.
我们有大约300个芹菜进程在Ubuntu 10.4 64位下运行,在空闲时每个进程需要~19mb RES,~174mbV VIRT,因此 - 对于所有进程来说,空闲时大约有6GB RAM.在活动状态 - 过程需要高达100mb的RES和~300mbV的VIRT
每个进程都使用minidom(xml文件<500kb,结构简单)和urllib.
问题是 - 我们如何减少RAM的消耗 - 至少对于闲置工人来说,可能一些芹菜或python选项可能会有所帮助?如何确定哪个部分占用大部分内存?
UPD:那是航班搜索代理商,一个代理商/日期的一名工人.我们有10个代理商,一个用户搜索== 9个日期,因此我们每个用户搜索有10*9个代理商.
是否有可能按需启动celeryd进程以避免闲置工作者(类似于apache上的MaxSpareServers)?
UPD2:代理生命周期是 - 发送HTTP请求,等待响应~10-20秒,解析xml(少于0.02秒),将结果保存到MySQL
可能的重复:
django - 按计算字段排序查询集
我如何使用 order_by 像 order_by('field1'*'field2') 例如,我有以不同货币列出价格的商品,因此要订购商品 - 我必须进行货币转换。
class Currency(models.Model):
code = models.CharField(max_length=3, primary_key=True)
rateToUSD = models.DecimalField(max_digits=20,decimal_places=10)
class Item(models.Model):
priceRT = models.DecimalField(max_digits=15, decimal_places=2, default=0)
cur = models.ForeignKey(Currency)
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西:
Item.objects.all().order_by(F('priceRT')*F('cur__rateToUSD'))
Run Code Online (Sandbox Code Playgroud)
但不幸的是它不起作用,我的注释也失败了。我如何通过 2 个模型字段的值相乘的结果来执行 QuerySet 排序。
我正在使用MySQL作为DB后端运行django站点.最后我在django_session表中有3百万行.他们中的大多数都已过期,因此我想删除它们.但如果我手动运行 delete from django_session where expire_date < "2011-04-18"整个网站似乎被绞死 - 它无法通过浏览器访问.
为什么会出现这种阻塞?怎么避免呢?