对具有Redis后端的每个任务使用唯一队列的后果

时间:2019-05-01 01:15:12

标签: redis celery

我意识到芹菜的Redis后端将每个任务请求存储在队列下的列表中。正如我必须iterate through all tasks in the list and make comparison by matching value那样,这使删除(中止)挂起的任务效率非常低下。我可以批量处理删除作业,但是由于时间上的限制,在工作人员接任务之前,它没有太大帮助。

因此,我想出的解决方案是为每个任务设置唯一的队列,例如计数(“ 1”,“ 2”,“ 3”)。使用前缀是不可能的,因为amqp code for celery worker doesn't support prefix or regex matching for queue names.。因此,我们假设通过广播或<button id='hideShow' class='hide' type='button'>Contact Us</button> <form> <fieldset id='contact'> <legend>Contact Us</legend> <label for='email'>Email: </label><br> <input type='email'><br> <label for='email'>Comment: </label><br> <textarea></textarea><br> <button type='submit'>Send</button> </fieldset> </form> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>函数来处理此问题,以在工作线程上动态重新分配队列。

使用这种方法时,我还可能遇到哪些其他陷阱?还是有一种有效删除待处理任务的方法?

0 个答案:

没有答案