【问题标题】:Queue System Farm questions队列系统场问题
【发布时间】:2011-04-04 11:17:19
【问题描述】:

到目前为止,我们还没有真正需要在我们的基础架构中实现队列系统,但现在我们需要一些无法通过 cron 作业完成的功能(太慢了)。

我们的基础架构是带有一些 NoSQL 的 LAMP (PHP)。

我看过 Gearman,它似乎非常适合我们的需求。我知道 Digg 和 Yahoo 都在使用它,所以它一定是可靠的。

  • 是否有任何管理工具可以在工作人员死亡或创建新任务时自动启动?

  • 如何在同一个基础架构下处理多个项目(项目 A 有 5 个任务,项目 B 有 10 个,项目 C 有 1 个)

  • 有没有办法轻松完成周期性任务?

我见过 Celery,它看起来不错,但它似乎仅适用于 AMQP(或仅适用于 RabbbitMQ),但它是在 python 中的,我还没有找到太多关于你是否可以使用非 python 任务的信息。

谢谢

【问题讨论】:

    标签: php message-queue rabbitmq gearman


    【解决方案1】:

    Celery 支持 webhook 任务,这使它能够通过 HTTP 调用其他语言:

    http://celeryq.org/docs/userguide/remote-tasks.html

    Celery 还支持 Redis、MongoDB、MySQL/PostgreSQL/Oracle 和 beanstalkd: http://celeryq.org/docs/tutorials/otherqueues.html

    不过,RabbitMQ 是最可靠的选择。

    【讨论】:

    • 是的,但是队列系统的想法是可扩展的,如果您使用 HTTP,那么我就不能使用队列系统并将其作为“web”脚本运行。我选择 Gearman 而不是 RabbitMQ 是因为我知道 reddit.com 运行 rabbitmq 有很多问题,而 Yahoo 运行 Gearman 每天处理 600 万条消息
    • 你不懂。它仍然是一个“排队系统”,它只是使用 HTTP 回调而不是原生函数。假设您要导入一些联系人,然后公开一个 url “mysite/user/contacts/import”,排队系统稍后会调用该 URL。每天 600 万条消息并不多。
    猜你喜欢
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 2011-01-18
    • 2023-01-16
    • 2012-02-16
    相关资源
    最近更新 更多