我有一個Drupal模塊,它通過hook_nodapi在節點上執行soap請求。這對個人保存來說並不是很大的性能損失,但是如果成千上萬的節點正在以批處理模式保存,這是一個很大的瓶頸。你能否告訴鉤子nodapia(或任何掛鉤)是否從批處理模式運行?
我想在從批處理模式調用掛鉤時執行不同的操作,但看不到一個簡單的方法來說明這一點。
有沒有人有任何想法?
我有一個Drupal模塊,它通過hook_nodapi在節點上執行soap請求。這對個人保存來說並不是很大的性能損失,但是如果成千上萬的節點正在以批處理模式保存,這是一個很大的瓶頸。你能否告訴鉤子nodapia(或任何掛鉤)是否從批處理模式運行?
我想在從批處理模式調用掛鉤時執行不同的操作,但看不到一個簡單的方法來說明這一點。
有沒有人有任何想法?
您可以撥打batch_get()
並檢查結果。如果它不是空的,則處於批處理模式。
(注:假設Drupal的6這裏)
您可以使用您在腳本開始時設置的全局變量,並在最後取消設置/更改值。然後你可以在你的鉤子中檢查這個全局變量,並且如果它被設置爲一個特定的值,什麼也不做。
如果你正在做參考使用Batch API一個Drupal級批,Henrik的建議是最好的。
但是,如果您正在參考外殼驅動的批處理過程(對於大批量比基於Web的批處理更爲實用),則可以測試php_sapi_name():如果返回是"cli"
,那麼它是命令行和可以是一批殼。取決於你的上下文
我指的是批處理API,但感謝提示。 – 2009-09-28 05:39:25
這將適用於我編寫的批處理過程,但不適用於任何其他批處理過程。 – 2009-09-26 08:59:28