很簡單,我有一個程序,需要進行大量的過程(從5秒鐘到幾分鐘不等),我不想讓我的網頁等待該過程完成加載。確定適當的Gearman任務函數來獲取實時作業狀態
我明白,我需要運行這個Gearman的工作作爲一個後臺進程,但我在努力找出妥善的解決辦法,以獲得實時狀態更新爲當工人實際完成的過程。我用下面的代碼片段從PHP例子:
do {
sleep(3);
$stat = $gmclient->jobStatus($job_handle);
if (!$stat[0]) // the job is known so it is not done
$done = true;
echo "Running: " . ($stat[1] ? "true" : "false") . ", numerator: " . $stat[2] . ", denomintor: " . $stat[3] . "\n";
} while(!$done);
echo "done!\n";
和這個作品,但是似乎它只是數據返回到客戶端時,工作人員講完的工作要做什麼。相反,我想知道job
的字面過程何時完成。
我的現實生活中的例子:
- 拉幾個數據從API(一些飼料花費比別人更長的時間)
- 裝載一對夫婦的人的總是加載速度不夠快,將「等待供稿/加載」動畫上被罰下的工人隊列的部分
- 當工作完成後,結果已經完全取出,用成績代替動畫
比較晚,但請接受的答案,如果這是一個sollution你的問題。 –