【问题标题】:Best way to handle long-running tasks on a web server在 Web 服务器上处理长时间运行任务的最佳方式
【发布时间】:2017-08-24 06:39:33
【问题描述】:

在过去的几天里,我一直在谷歌上搜索我应该如何在 Web 服务器上处理长时间运行的任务。我找到了很多关于如何以特定语言运行它们的好答案,但没有找到适合此类工作的语言。

所以,我有一个运行某种定制电子商务平台的 Web 服务器。还有另一台服务器,其中一些产品 dostributor 通过 API 提供对其数据的访问。我必须在这两个服务器之间同步产品列表。产品基础相当大(大约 100000 种产品)。

我的想法是编写 php 脚本,该脚本从各种 API 端点收集数据并相应地更新数据库。但这需要很长时间,所以如果没有硬修改和深入研究 php 本身,它就会超时。

现在我在想,也许我应该编写通过 API 端点并收集每个产品的数据的 Python 脚本。收集到有关产品的数据后,python 脚本可以启动 php 脚本,该脚本可以更新数据库中有关该特定产品的数据..

您对此有何看法?最好的处理方法是什么?

【问题讨论】:

    标签: php python mysql web


    【解决方案1】:

    这听起来像是你最好在服务器端使用 Cron 来做的事情,例如,而不是从浏览器。当然,除非您需要由没有终端访问权限的人随机手动执行此操作。

    如果它必须是 PHP,您可以使用 cron 或从终端运行它并禁用超时(请参阅:http://php.net/manual/en/function.set-time-limit.php),甚至在需要时使用 & 将其保留为后台进程。这样您就不会受到 Apache(或您使用的任何服务器)时间限制的限制。

    【讨论】:

    • 感谢您的回答。回到家后,我一定会检查您发送的链接。从技术方面来说,我不需要在客户端完成任务。正如我所说,它甚至可以是某种 python 脚本,它会在一天中的某个时间自动执行。所以实际上没有技术限制。我只是不确定 PHP 是否会成为繁重任务的最佳选择。
    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 2011-08-10
    • 2019-08-01
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 2015-12-04
    • 2012-04-10
    相关资源
    最近更新 更多