我目前使用laravel-elasticsearch供應商進行我的ES查詢。我在我的laravel隊列(使用beanstalkd)處理的作業中使用了這個。我遇到的問題是,在長時間運行的作業中,最終我不能再將數據插入到elasticsearch中。這項工作只是掛起了(沒有例外),我將它縮小到我正在進行ES調用的代碼。有可能我的連接可能會變得過時而無法重新連接?我的另一個想法是,它與使用Facade和它是一個單身人士有關。ElasticSearch查詢在laravel作業隊列中掛起
這是我在做什麼,這不是我確切的代碼。但是當代碼在長時間運行的作業中運行時,代碼工作得很好。我只是想提供一些context.it插入很好,直到它在長時間運行的進程之後運行才能正常運行。
UPDATE:
我已經縮小問題下到elasticsearch-PHP庫持續的連接。我有一個負載均衡器後面的ES,它在5分鐘後超時TCP連接。問題是在ES php庫中不存在活着。 5分鐘後連接關閉,但它不會關閉我的連接。有沒有辦法爲elasticsearch-php設置保持活動狀態?或打電話重置連接?
//run some functions....
$params = array();
$params['body'] = array('somefield' => 'some data');
$params['index'] = 'my_index';
$params['type'] = 'my_type';
$params['id'] = 'my_id';
$ret = Es::update($params);//this is working just fine
//long running function here
$newparams = array();
$newparams['body'] = array('somefield' => 'some data');
$newparams['index'] = 'my_index';
$newparams['type'] = 'my_type';
$newparams['id'] = 'my_id';
$return = Es::update($newparams);//this will just hang
看起來像失業的問題,而不是ES。你是否在處理失敗的工作? –
我正在處理失敗的作業,但作業沒有失敗,它只是掛起,就好像它試圖連接到ES而沒有超時 – arrowill12