我正在使用框架Drupal 7和环境Windows与mysql。我有一个问题,我想在php中调用Asynchronus,我必须更新数据库中的某些值,但我不想停止执行函数。即使数据库处理正在进行,函数也应该完成并返回值。
我在考虑线程方法,其中一个线程正在更新数据库,其他线程将完成并返回函数。在PHP中有可能吗?如果是,那怎么??
答案 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文档不是很好)。