用Drupal 7在php中进行多线程处理

时间:2013-04-17 11:17:57

标签: php mysql drupal drupal-7

我正在使用框架Drupal 7和环境Windows与mysql。我有一个问题,我想在php中调用Asynchronus,我必须更新数据库中的某些值,但我不想停止执行函数。即使数据库处理正在进行,函数也应该完成并返回值。

我在考虑线程方法,其中一个线程正在更新数据库,其他线程将完成并返回函数。在PHP中有可能吗?如果是,那怎么??

4 个答案:

答案 0 :(得分:0)

目前有关于PHP多线程的一千个问题,它们都在Drupal上“工作”。 PHP中并不真正支持多线程。我敢打赌,你需要使用这个功能。

passthru("/usr/bin/php /path/to/script.php ".$argv_parameter." >> /path/to/log_file.log 2>&1 &");

这将使其在后台保持运行并将结果输出到您的日志。

答案 1 :(得分:0)

我建议使用Symfony2框架中的Process组件: http://symfony.com/doc/master/components/process.html

答案 2 :(得分:0)

这是我编写的多线程Drush教程的链接,它可以帮助您在Drupal 7中使用多线程示例:

http://deeson-online.co.uk/labs/multi-threading-part-1-how-make-drush-rush

答案 3 :(得分:0)

另一种选择是HTTP并行请求&线程库模块:https://www.drupal.org/project/httprl

我认为你想要的功能是httprl_queue_background_callback()然后是httprl_send_request()。请参阅示例(API文档不是很好)。