Rabbitmq 了解排队(芹菜等)是如何工作的?

Rabbitmq 了解排队(芹菜等)是如何工作的?,rabbitmq,celery,message-queue,resque,amazon-sqs,Rabbitmq,Celery,Message Queue,Resque,Amazon Sqs,我读了很多关于排队的书,把自己弄糊涂了。我会记下我所知道的,如果我理解正确,请让我知道 队列基本上帮助您完成请求-响应周期之外的事情。这意味着,如果客户机上载图像,并且您希望保存图像的缩略图版本,那么您不希望让客户机等待图像被修剪的时间,然后返回给他,您可以通过队列在请求-响应周期之外执行此操作。队列几乎类似于传统的数据结构队列,采用先进先出的排序方式 这些队列的流行解决方案提供商是&amazonsqs 队列是如何工作的? 通常有一个守护进程在运行,例如,如果有芹菜,那么就有一个芹菜守护进程在运

我读了很多关于排队的书,把自己弄糊涂了。我会记下我所知道的,如果我理解正确,请让我知道

队列基本上帮助您完成请求-响应周期之外的事情。这意味着,如果客户机上载图像,并且您希望保存图像的缩略图版本,那么您不希望让客户机等待图像被修剪的时间,然后返回给他,您可以通过队列在请求-响应周期之外执行此操作。队列几乎类似于传统的数据结构队列,采用先进先出的排序方式

这些队列的流行解决方案提供商是&amazonsqs

队列是如何工作的? 通常有一个守护进程在运行,例如,如果有芹菜,那么就有一个芹菜守护进程在运行,并在队列顶部的任何任务上继续执行计算。(希望这一点我是对的)

另一个例子,有点复杂,请纠正我

现在,假设我想自动化以下任务:

  • 12月25日给我的一个朋友发封信

  • 12月26日,祝朋友生日快乐

  • 12月26日,在另一位朋友的生日祝福她

  • 在这种情况下,我将执行以下操作:

  • 创建一个条目,并在数据库中输入

  • 创建条目后,将该条目排队

  • 解雇将执行该任务的工作人员

  • 现在有个疑问,步骤3正确吗

    是否有一个长期的投票工作人员,谁将采取行动? 这是怎么回事?我很困惑。或者我需要运行一个cron作业,它将持续触发一个脚本 要检查队列中是否有任何内容,请在给定的时间内(精确到分钟)检查。如果有,则解雇一名工人

    当您查看芹菜的文档时,他们需要一个后端-redis、mongodb、sqs等。因此,如果我是对的,将有一个连续的进程作为守护进程运行,并将跟踪队列中的内容(redis、mongodb)并应执行。这是灰色区域。请帮忙


    谢谢你的回答。

    使用芹菜有两种基本方法。假设你用的是芹菜+兔子

  • 执行长时间运行的任务(>您不希望让客户端等待工作完成。) 您可以从web请求中执行的代码运行芹菜任务。这意味着您的任务将序列化为消息,并将发送到rabbit服务器上的队列。 另一个进程(芹菜进程)有一个消费者,当消息到达队列时,该消费者将被初始化。芹菜工人获取此消息,反序列化它,并在其他线程中执行您的任务。就这些

  • 您可以通过cron启动芹菜作业(它只会更改为芹菜创建任务的发件人,但所有其他事情都是一样的)

  • p、 如果您使用的不是RabbitMq,比如数据库,Memcached作为代理。芹菜将每N秒或毫秒读取一次。等等