你能告诉钩子nodapia(或任何钩子)是否从批处理模式运行?

时间:2009-09-25 09:58:31

标签: drupal

我有一个Drupal模块,它通过hook_nodapi在节点上执行soap请求。这不是单个保存的大量性能损失,但如果以批处理模式保存数千个节点,则这是一个很大的瓶颈。

我想在从批处理模式调用钩子时执行不同的操作,但是看不到一种简单的方法来告诉它。

有没有人有任何想法?

3 个答案:

答案 0 :(得分:3)

您可以致电batch_get()并查看结果。如果它不为空,则表示您处于批处理模式。

(注意:在这里假设Drupal-6)

答案 1 :(得分:1)

如果您使用Batch API参考drupal级批处理,Henrik的建议最好。

但是,如果您正在引用shell驱动的批处理过程,这对于大批量比基于Web的批处理更实用,则可以测试php_sapi_name():如果返回为"cli" ,然后它是命令行,可以是一个shell批处理。取决于您的背景

答案 2 :(得分:0)

您可以使用在脚本开头设置的全局变量,并在最后取消设置/更改值。然后你可以在你的钩子中检查那个全局变量,如果它设置了某个值就什么都不做。