4

现在我正在使用 Gevent,我想问两个问题:

  • 有没有办法执行永远不会异步执行的特定任务(而不是在每个任务中使用锁)
  • 有没有办法在 Gevent 中对生成的任务进行优先级排序?就像一组将以低优先级生成的任务将在所有其他任务完成时执行。例如,当每个任务处理不同优先级的套接字请求时,两个任务会监听不同的套接字。

如果在 Gevent 中不可能,还有其他库可以做到吗?

编辑
也许芹菜可以在这里帮助我?

4

1 回答 1

1

如果您想管理计算资源,Python 异步库在这里无能为力,因为 AFAIK 也没有优先级调度程序。所有的绿线都是平等的。

任务队列通常具有优先级的概念,因此 Celery 或 Beanstalk 是一种方法。

如果您的问题不需要任务(重新)执行保证、持久性、多机工作分配,那么我只需启动几个工作进程,使用操作系统为它们分配 CPU、IO、磁盘优先级,并通过 UNIX 套接字 DGRAM 发送工作/结果。一种特别简单的任务队列版本。如果你走这条路,请把你的工作分享为开源项目,我相信这种解决方案是有需求的。

于 2016-10-23T14:13:24.863 回答