1
chaleaochexist OP 任务是一次性的,不是定时任务.
|
2
chaleaochexist OP 距离成功只差最后一步.
django 中如何使用 apscheduler? 只启动一次,可以在多个 view 中使用. 并且在启动的时候,可以使用 django.cache.lock |
3
Vegetable 2019-06-19 00:10:37 +08:00 1
感觉方向不是很恰当,celery 可以实现,直接使用 task.delay 或者 send_task 配合 countdown 参数就可以直接延迟执行,刚好也是执行一次.
但是 2 周好久啊,内存已经不靠谱了,celery+redis 勉强可以算作是可靠的吧 如果我来做我选择数据库+crontab |
4
leishi1313 2019-06-19 05:01:43 +08:00 via Android
赞同#3,延迟那么久用什么异步没意义了,还是持久化到数据库然后跑定时任务比较好
|
5
chaleaochexist OP |
6
tt67wq 2019-06-19 08:53:05 +08:00
老老实实丢在数据库里面,再加个定时任务来消费,数据库的事务性能免去一大堆用其他乱七八糟 queue 带来的麻烦
|
7
leishi1313 2019-06-19 09:34:55 +08:00 via Android
@chaleaochexist 任务开始跑了不用再取消吧,没跑不就还在数据库嘛,删掉或者标记一下就好了呀。我们说的定时任务是一种服务,你可以设定每隔多久跑一次,然后你就可以设置比如每分钟数据库查一下有没有到期的任务,有就扔给 worker 跑就好了。celery 也有类似功能,搜“ celery cron ”
|
8
sujin190 2019-06-25 23:59:32 +08:00
|