1
25
我的成绩很好
BeanstalkD
以及一个用PHP编写的后端,用于检索作业,然后对其进行操作。我将实际运行的作业包装在一个bash脚本中,以在它退出时继续运行(除非我执行a'
使用它的一个优点是,您可以将优先级和延迟设置为beanstack作业-“以较低的优先级运行此作业,但不要在10秒内启动”。我也曾在某个时间将一些作业排队(现在运行,5秒后运行,30秒后再次运行)。 通过适当的网络配置(并在网络其余部分的可访问IP地址上运行),您还可以在一台服务器上运行beanstalkd deamon,并从许多其他计算机上对其进行轮询,因此,如果正在生成大量任务,则可以在服务器之间分离工作。如果一组特定的任务需要在一台特定的机器上运行,我已经创建了一个“管道”,即该机器的主机名,如果不是全局的话,它在集群中应该是唯一的(对于文件上载很有用)。我发现它非常适合调整图像大小,通常会将完成的较小的图像返回到文件系统,而引用它的网页本身会引用它将要到达的URL。 实际上,我正准备为我的博客写一系列关于这个主题的文章(包括一些我已经推过数百万条实时请求的代码技术),我的URL链接到 user profile 这里,在stackoverflow上。 (我写了一篇文章) series of articles 关于beanstrack和工作队列的主题) |
2
4
如果您使用像beanstaked这样的消息队列,那么您可以启动任意多的进程(甚至在同一台服务器上)。每个工作进程将从队列中获取一个作业并进行处理。如果需要更多的容量,可以添加更多的工作人员和服务器。 使用单线程工作程序的好处在于不必处理进程内部的同步。JobQueue将确保不会两次处理任何作业。 |
3
0
可能也值得一看 Amazon SQS 与EC2一起使用? |
4
0
Gearman呢?在PHP中有很好的支持和集成,以及并行任务、缩放、监视等功能… |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |
user1700890 · 了解交互式代理Python API中的线程 2 年前 |
AntonBoarf · 为什么要将实例变量指定给局部变量? 2 年前 |
rhymes · 如何让线程操作相同的java列表 2 年前 |