AzurePHP - 轮询Azure队列

时间:2012-01-06 19:42:51

标签: php azure azure-storage-queues

我有一个将脚本写入Azure Blob的PHP脚本。上载文件后,Azure中的逻辑执行计算,然后将结果放入Blob中。完成后,将一条消息PUT到Azure队列中。

我正在尝试编写用于轮询Queue的代码,查找指示结果已准备好下载的特定消息。你会怎么做?

2 个答案:

答案 0 :(得分:2)

使用PHP实现这一目标的唯一可行方法,我认为可以解决您的问题:

  1. 创建一个小的php文件,检查队列中的消息并处理它们(如果有的话)。一次只检索一条消息。处理后不要忘记删除邮件。检索邮件时,请在适当的超时时间内获取,以便有足够的时间进行处理。
  2. 创建一个小的.bat(或.cmd)文件,调用提供php文件路径的php.exe二进制文件
  3. startup task配置Windows Task Scheduler中,每N秒/分钟执行批处理文件(.bat或.cmd)
  4. 希望这有帮助!

    如果您需要任何其他帮助,请添加评论,我将尝试提供代码示例。一切都是微不足道的。

答案 1 :(得分:1)

据我所知,LAMP为Linux,MySQL,Apache,PHP提供了支持。目前,无法在Windows Azure中运行Linux。

但是,如果你不是在谈论Windows Azure Compute在哪里运行你的PHP而只是Linux.It更容易和完全一样。唯一的区别是你必须使用cron(或here)或at来安排执行php脚本。

在Linux中,您甚至可以make your php script executable by adding a special processor command on the first line。你应该放置类似的东西:

#!/path/to/your/php/binary/php

在处理队列的php脚本的第一行。

这是crontab每2分钟执行一次脚本的示例配置行:

*/2 * * * * /path/to/your/php/script/process_queue.php

取自here