我有一个Drupal 7
站点,其中包含一些使用某些Drupal API的非Drupal Web服务。
我需要保存一个全局数组,其中包含一些我需要每分钟更新的值,这些值可用于对 Web 服务的每次调用。
我是Drupal
和PHP
新手,我想知道我是否应该使用纯PHP
,例如:
while(true){
doSomething();
sleep(60);
}
还是Drupal cron或其他东西?
是的,你应该使用Drupal's Cron。 在您提供的链接中,有一个指向Drupal's Cron的综合设置视频的链接。 在无限循环中使用sleep()
是一个坏主意,因为如果您在共享托管服务器(如 GoDaddy)上,则可以运行的并发进程数是有限的。因此,如果 20 个用户向您的服务器发送请求,而 20 个 PHP 进程处于休眠状态,则可能导致您的服务器崩溃(即 HTTP 50x 错误)。
使用 Cron,您只需将所需的数据保存在由 Cron 更新的文件中,并在 PHP 脚本中并发访问该文件(多个 PHP 进程)。