0
我在一个在线游戏中使用芹菜和Django。用户建造各种类型的船只,并且任务被设置为在一定时间之后提供它们。芹菜任务执行不正确
举个例子:
def buildfighter(world, amount):
world.shipyardsinuse = F('shipyardsinuse') + 1*amount
world.save()
newtask.buildfighter.apply_async(args=(world.worldid,amount), eta=outcometime)
我的实际任务的代码,待1个小时后执行:
def buildfighter(worldno, amount):
world = World.objects.get(worldid=worldno)
world.fighters = F('fighters') + amount
world.shipyardsinuse = F('shipyardsinuse') - 1*amount
world.save()
任务提供这种船只和释放的船厂。
我总是收到偶尔报告用户遇到被封锁的造船厂和失踪船舶通过eta,并为我的生活我不明白为什么!我已经建立了芹菜摄影机,当我回去检查那些失踪的任务时,他们都显示为SUCCEEDED
。
我settings.py的芹菜部分:
import djcelery
djcelery.setup_loader()
BROKER_URL = "amqp://guest:[email protected]:5672//"
CELERY_IMPORTS = ("wawmembers.tasks",)
CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend'
CELERY_TASK_RESULT_EXPIRES = 14400
CELERY_DISABLE_RATE_LIMITS = True
谁能帮助?