Да, такое возможно, если падение процесса совпало с рестартом машины. Можно добавить в ключ время запуска процесса (просто вызвав time() при запуске и сохранив его где-нибудь).
В других случаях pid будет назначен иной с очень большой вероятностью (PID генерируются функцией get_pid, которая возвращает еще не используемый PID. В качестве начального эта функция использует last_pid — последний выделенный PID). 6 августа 2012 г., 14:07 пользователь Alexandr Alexeev <[email protected]>написал: > >> SELECT ... FOR UPDATE; > > Это очень похоже на то, что мне нужно > > >> В MySQL есть GET_LOCK(name), RELEASE_LOCK(name) которые не привязаны к > таблице, и удаляются при потере соединения. > > А насколько это переносимо под другие РСУБД? > > >> Все воркеры запускаются под супервизором (runit), и при старте он > проверяет очередь на задачи, маркированные тем же ip, но другим pid, и > снимает с них пометку. > > А если при следующем запуске процесс получит тот же pid? > > 6 августа 2012 г., 13:54 пользователь Akzhan Abdulin > <[email protected]> написал: > > Ну это лечилось тривиально. > > > > Все воркеры запускаются под супервизором (runit), и при старте он > проверяет > > очередь на задачи, маркированные тем же ip, но другим pid, и снимает с > них > > пометку. > > > > 6 августа 2012 г., 13:42 пользователь Sergey Leschenko < > [email protected]> > > написал: > > > >> > Сначала делал UPDATE таблицы, а потом выбирал нужные записи. > >> > >> Минус этого варианта в том, что если worker умрет, надо вернуть задачи > >> обратно в очередь. > >> > >> В MySQL есть GET_LOCK(name), RELEASE_LOCK(name) которые не привязаны к > >> таблице, и удаляются при потере соединения. > >> Читаем задачу, формируем имя лока, пробуем залочить - получилось - > >> выполняем, не получилось - переходим к следующей задаче. > >> > >> -- > >> Sergey > >> -- > >> Moscow.pm mailing list > >> [email protected] | http://moscow.pm.org > > > > > > > > -- > > Moscow.pm mailing list > > [email protected] | http://moscow.pm.org > > > > > > -- > С уважением, Александр > Личный блог: http://eax.me/ > Мой форум: http://it-talk.org/ > Мой Twitter: http://twitter.com/afiskon > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org >
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
