在我的heroku應用程序中,我有一項任務需要超過30秒才能執行,而且我不能增加執行時間,因爲heroku不會允許這樣做。 我從前端的API中獲取數據,然後使用AJAX將其發送到服務器以將此數據插入數據庫。服務器中的這個過程需要超過30秒才能完成,並且會給我一個超時錯誤。Heroku PHP後臺工作人員
我創建的Procfile如下: worker: cd ~/www/ && ~/php/bin/php worker.php
文件worker.php需要使用AJAX發送的數據,然後將其插入到數據庫中。
我啓用了工人在Heroku的儀表盤
我想實現的是,只有當我點擊一個按鈕,啓動Ajax調用啓動該工人。我不想使用heroku調度程序,因爲這個腳本只能在每個月運行一次,或者每當客戶想要添加新產品時運行。 另外,如果我使用調度程序,我不知道如何將數據從API發送到服務器。
如果這是不可能的,有沒有辦法強制heroku增加執行時間?
謝謝你
...爲什麼你需要它作爲後臺工作,而實際上只執行它,當一個Ajax POST進來......就像虛擬主機怎麼是正常? –
@Nick Li因爲整個應用程序凍結,直到數據庫插入完成。我認爲作爲後臺工作者,這不會發生 – Alfred
我懷疑這是問題所在,即使插入了100k行,也不應該花30秒。它是超過30秒從單一的Ajax來執行,你的腳本的天平很可能證明有一個專用服務器來代替。除了插入數據之外,你還在使用腳本做什麼? –