关于任务管理的一个愚蠢问题

2016-05-02 23:30:50 +08:00
 SlipStupig
我想实现一套任务管理系统 B/S 架构。想实现一个客户端任务调度系统。
任务类型分为几类:
1.循环单机任务(如果一个客户端已经领取就其它机器都领取不到,除非任务被取消掉,否则会连同新任务一起执行) 2.循环任务(所有的机器都可以领取,且一直都能领取)
3.单机循环定时任务(单个客户端可以指定几点后开始执行该任务,执行多少次)
4.循环任务定时任务(所有的客户端都可以指定几点开始,执行多少次)
5.普通任务,领取之后该任务,任务将无法再次被其它客户端领取

目前设计的是用 redis 去 push/pop ,这样就会解决不了循环问题,后来改成 push/sub 模式,后加入的客户端无法得到之前的数据,而且一发消息所有客户端都收到了,求帮助
2481 次点击
所在节点    程序员
3 条回复
henneko
2016-05-03 09:31:05 +08:00
1.clearsession
2.topicId
其实我不懂
calease
2016-05-03 09:49:17 +08:00
celery + rabbitmq 可以解决所有问题。
需要单个领取的用 redlock 。
adrianzhang
2016-05-03 21:04:50 +08:00
多种队列用 rabbitmq 统一管理就行。楼上方案靠谱

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

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

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

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

© 2021 V2EX