-4

在 Zend Framework 2 中执行自动化 php 程序的最佳方式是什么?

我想安排一个任务在数据库(mysql)中运行,但它不与任何 HTTP 调用交互,即只有服务器端执行。

我希望程序是在我的框架模块中定义的,这可能吗?

如果它不能在我的模块中定义,我怎么能在外面做呢?

4

1 回答 1

1

我不确定你是否需要在 PHP 中做任何工作,但如果你不需要,你可以使用 MySQL 的Event Scheduler。这将允许您在数据库中运行计划的作业。在此处阅读有关创建此类事件的语法的更多信息。这是一个例子:

CREATE EVENT some_event
ON SCHEDULE AT 12:34:00 EVERY DAY
DO
UPDATE my_schema.my_table SET my_column = my_column + 1;

我没有测试它,所以希望它有效。

或者,您可以在服务器上创建一个 cronjob。大多数共享托管服务提供商也允许您这样做。如果您不使用共享主机,您可以让 cronjob 运行如下:

mysql -u username -p password -e "UPDATE my_schema.my_table SET my_column = my_column + 1";

同样,未经测试,但它应该为您指明正确的方向。

另一种选择是与 cronjob 一起使用cURL,以便在运行 cronjob 时请求一个 URL。

curl http://yourdomain.com/yourtask

然后在 Zend Framework 中,您可以有一个yourtask路由,或者只在 URL 中使用模块、控制器和操作。然后,您将从 PHP 和 Zend Framework 发送数据库查询。

您也可以在其他地方拥有一个由 cURL 调用的独立 PHP 脚本。或者更好的是,直接通过 PHP。然后它不必对世界可用。

如您所见,您有很多选择。选择适合您情况的那个。我们没有足够的细节来做出这个选择。

于 2013-02-08T12:10:48.193 回答