簡體   English   中英

長時間運行的腳本

[英]Long running Script

我正在開發一個用於wordpress的插件,該插件可通過多個API調用導入大量數據,並將其另存為woocommerce產品。

問題是,當商店有數百種(如果不是數千種)產品時,它將開始對導入作業的時間造成損失,從而導致大量超時。 使用“ set_time_limit(xx)”之類的命令擴展導入是可行的,但是某些服務器似乎仍然具有自己的故障保護功能,我認為我無法通過以下代碼行繞過這些操作:

mod_zfpm(63616:7f14fca1b730:0)-F030E35B: stderr: Timeout (900s) exceeded while reading from socket (application) (fastcgi.c:941)'

我試圖找出哪種方法是最正確的。 到目前為止,我想到的選擇是:

  1. 錯誤時使用“ register_shutdown_function()”重新啟動導入(可能是一個非常糟糕的主意)

  2. 將工作分為一系列小型cron工作(更安全的替代方法,但可能很耗時且令人費解)

我應該選擇選項2,還是有更好的方法來處理長期運行的任務?

注意:由於它是WP的插件,因此我無法采用許多重復線程中建議的解決方案,因為該插件將在許多不同的服務器上使用。

我仍然對php還是陌生的,但是我曾經遇到過類似的事情,但是情況並不完全相同,使用的解決方案是

1)將數據放入JSON格式。

2)這是一個使用Ajax發出的sql數據庫

3)根據需要顯示的數據量按組發出請求

4)請求中的多余邊界導致它返回所有具有偏移量的數據,然后如果返回數據,則偏移量增加,並發出另一個請求,並將第二組返回的數據附加到第一組

5)當數據數組異步更新時,當數據發生變化時,將附加一個JavaScript事件偵聽器以重新加載顯示

雖然此答案不能解決您的問題,但我希望它能給您一個想法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM