如题,现有一个需求创建一个资源,如果该资源创建成功,5 分钟后对这个资源做一定的操作。请问使用 Python 如何实现。
![]() | 1 DoubleShut 2020-03-19 17:25:28 +08:00 建议不要自己实现,可以用专业的队列,比如 rabbitmq,可以通过投递消息,设置消息过期时间,死信交换机,然后消费死信 |
2 2kCS5c0b0ITXE5k2 2020-03-19 17:27:17 +08:00 还是上专业的消息队列吧,... |
![]() | 3 Orenoid 2020-03-19 17:27:24 +08:00 celery |
4 qile1 2020-03-19 17:27:52 +08:00 via Android 做一个操作是部调用吗?内部能不能 time。sleep 五分钟然后执行,进程和线程通信就那几种方法 |
![]() | 5 wzwwzw 2020-03-19 17:34:09 +08:00 celery 可以延迟执行吧,这个是简单的实现方式。 |
![]() | 6 sujin190 2020-03-19 17:45:38 +08:00 https://github.com/snower/forsun 之前做过一个服务,高性能,用资源 ID 创建任务,到时发起动作,可以是 shell、http 请求、mysql 语句、redis 命令,可以使用 redis 持久化存储,不拍丢失,特别适合订单超时支付取消、配送订单超时之类的人物 当然也可也自己编写执行器扩展接入自己的项目里 |
7 Feedline 2020-03-19 18:41:32 +08:00 用 redis 吧,轻量级,快速 |
8 hmxxmh 2020-03-19 18:45:56 +08:00 via Android ![]() 用 Apscheduler,python 的异步任务调度框架 |
![]() | 9 Leigg 2020-03-19 18:55:15 +08:00 via Android 不就是定时任务吗,找找对应方案 |
![]() | 10 renyijiu 2020-03-19 18:59:22 +08:00 ![]() 1. 简单的,落库,定时查询; 2. redis 的 zset,定时查询 3. 支持延时任务的消息队列 常见的几个方案 |
11 blackcurrant 2020-03-19 19:04:18 +08:00 via iPhone time.sleep(300) do() |
![]() | 12 zhoudaiyu PRO Celery 干就完了 |
![]() | 13 Tink PRO sleep 一把梭 |
![]() | 14 Hello0World 2020-03-19 22:11:27 +08:00 via Android celery |
![]() | 15 lithbitren 2020-03-19 22:30:32 +08:00 非阻塞的等待,如果不想借助第三方库,最起码也得开个新进程独立等待。 |
![]() | 16 Maboroshii 2020-03-19 23:41:09 +08:00 循环检查任务是否可以执行 |
![]() | 17 labulaka521 2020-03-19 23:49:35 +08:00 via Android time.sleep 300 |
![]() | 18 LengthMin 2020-03-19 23:51:02 +08:00 https://github.com/agronholm/apscheduler Advanced Python Scheduler https://github.com/coleifer/huey huey, a little task queue for python |
![]() | 19 cz5424 2020-03-20 00:39:45 +08:00 via iPhone 最简单就是 sleep 啦 |
![]() | 20 euph 2020-03-20 00:49:55 +08:00 所以小白首先想到的就算 sleep 吗?第一次见各位大神各种骚操作 |
![]() | 21 linvaux 2020-03-20 09:37:12 +08:00 celery 了解一下 |
![]() | 22 Dustyposa 2020-03-20 10:26:33 +08:00 ![]() |
![]() | 23 coderEOS 2020-03-20 11:00:43 +08:00 crontab 1 分一次 + 然后存个文件列表 也可以 |
![]() | 24 lithbitren 2020-03-22 02:26:55 +08:00 我佛了,复习了一下文档,直接 threading.Timer 创建任务再 start 就完事了,最直接简单,线程级异步非阻塞,主进程主线程干啥都不影响,时间一到就会开始响应,不怕影响 gil 不开新进程也无妨。 https://docs.python.org/zh-cn/3/library/threading.html#timer-objects |
25 Pegasus 2022-01-28 15:13:19 +08:00 |