求助,多个定时任务更优解

2021-07-29 11:20:30 +08:00
 hhhWhy

场景:

  1. 有多个定时 /周期的任务需要执行(比如:周一三五执行,每天 8 点执行)。
  2. 用户 A 定的任务,权限更高的用户 B 可以修改,当然修改以后原任务执行周期自然就变了。
  3. CS 软件,任务数据都在数据库,执行必须由客户端执行。

现有设计:

  1. 将计时器和数据打包,任务更改后去重新创建计时器
  2. 将计时器单独拎出来,到点主动拉数据库数据。任务更改后,计时器只增不删。

感觉实现都不是很优雅,大家有没有遇到过这种问题,有没有更优雅的模型

2033 次点击
所在节点    程序员
8 条回复
meshell
2021-07-29 11:33:09 +08:00
为什么必须客户端执行?服务端跑定时,推送消息给客端该跑任务了?
zardly666
2021-07-29 11:36:21 +08:00
xxl-job 看看呢 服务端有立即执行的 api 供外部(客户端)调用。
chionetw5
2021-07-29 12:20:26 +08:00
celery 有动态修改的接口
xlui
2021-07-29 12:26:05 +08:00
服务端保存定时任务和执行计划,到执行时间后发执行指令给客户端
hhhWhy
2021-07-29 13:33:52 +08:00
@meshell @xlui 因为依托于 CS 平台,原来老的 S 端只有一个数据库和多个客户端的数据交互。如果要去加功能的话,祖传代码,所以为了少生产 BUG 还是想放到客户端上面去做
hhhWhy
2021-07-29 13:39:20 +08:00
@zardly666 @chionetw5
看了下,如果服务端可以改的话,是很不错的。但是限定在客户端执行 ort
petercui
2021-07-29 16:03:40 +08:00
@hhhWhy 客户端要是不开机怎么执行呢?
hhhWhy
2021-07-29 17:12:29 +08:00
@petercui 不开机就不执行,直接顺延到下个周期

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/792436

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX