我有一个名为test的函数,用于处理名为test的队列中的任务:
@celery_app.task(
queue='test',
ignore_result=True,
base=BasePostCrawlerTaskClass)
def priority_test(priority):
print(priority)
我添加一个带有expires
参数的任务,如下所示:
priority_test.apply_async(args=(10,), queue="test", expires=10)
当我运行redis-cli并获得队列项目时:
127.0.0.1:6379> LINDEX test 0
"{...\"headers\": {\"expires\": \"2018-07-26T06:00:10.928428+00:00\", \"id\": \"843a1c8e-2da0-4eee-b9bd-dc60fa323b38\", ...}"
但是10秒钟后任务仍然在队列中。 我的服务器时间设置为另一个时区而不是UTC。 另外,我将DateTime作为expires参数与当前时区进行测试,如下所示:
priority_test.apply_async(args=(20,), queue="test", expires=datetime.datetime.now() + datetime.timedelta(seconds=20))
但仍在20秒后。任务在排队。 我想设置expires参数,以便任务脱离列表以减小列表大小。