0

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

我正在尝试在 php 中编写轮询队列的代码,寻找指示结果已准备好下载的特定消息。你会如何处理这个问题?

4

2 回答 2

2

我认为使用 PHP 执行此操作的唯一可行方法可能是解决您的问题:

  1. 创建一个小的 php 文件来检查队列中的消息并处理它们(如果有)。一次只检索一条消息。处理后不要忘记删除消息。检索消息时,请使用适当的超时时间来获取消息,以便有足够的时间进行处理。
  2. 创建一个小的 .bat(或 .cmd)文件,该文件调用 php.exe 二进制文件,提供您的 php 文件的路径
  3. 启动任务中,将Windows 任务计划程序配置为每 N 秒/分钟执行一次批处理文件(.bat 或 .cmd)

希望这可以帮助!

如果您需要任何其他帮助,请添加评论,我将尝试提供代码示例。一切都很琐碎。

于 2012-01-06T21:12:43.057 回答
1

据我所知,LAMP 适用于 Linux、MySQL、Apache、PHP。目前不可能在 Windows Azure 中运行 Linux。

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

在 Linux 中,您甚至可以通过在第一行添加一个特殊的处理器命令来使您的 php 脚本可执行。您应该放置以下内容:

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

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

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

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

取自这里

于 2012-01-09T19:56:16.867 回答