[Moscow.pm] Получение задач из РСУБД

Akzhan Abdulin akzhan.abdulin на gmail.com
Пн Авг 6 03:14:45 PDT 2012


Да, такое возможно, если падение процесса совпало с рестартом машины. Можно
добавить в ключ время запуска процесса (просто вызвав time() при запуске и
сохранив его где-нибудь).

В других случаях pid будет назначен иной с очень большой вероятностью (PID
генерируются функцией get_pid, которая возвращает еще не используемый PID.
В качестве начального эта функция использует last_pid  — последний
выделенный PID).

6 августа 2012 г., 14:07 пользователь Alexandr Alexeev
<afiskon на gmail.com>написал:

> >> SELECT ... FOR UPDATE;
>
> Это очень похоже на то, что мне нужно
>
> >> В MySQL есть GET_LOCK(name), RELEASE_LOCK(name) которые не привязаны к
> таблице, и удаляются при потере соединения.
>
> А насколько это переносимо под другие РСУБД?
>
> >> Все воркеры запускаются под супервизором (runit), и при старте он
> проверяет очередь на задачи, маркированные тем же ip, но другим pid, и
> снимает с них пометку.
>
> А если при следующем запуске процесс получит тот же pid?
>
> 6 августа 2012 г., 13:54 пользователь Akzhan Abdulin
> <akzhan.abdulin на gmail.com> написал:
> > Ну это лечилось тривиально.
> >
> > Все воркеры запускаются под супервизором (runit), и при старте он
> проверяет
> > очередь на задачи, маркированные тем же ip, но другим pid, и снимает с
> них
> > пометку.
> >
> > 6 августа 2012 г., 13:42 пользователь Sergey Leschenko <
> sergle.ua на gmail.com>
> > написал:
> >
> >> > Сначала делал UPDATE таблицы, а потом выбирал нужные записи.
> >>
> >> Минус этого варианта в том, что если worker умрет, надо вернуть задачи
> >> обратно в очередь.
> >>
> >> В MySQL есть GET_LOCK(name), RELEASE_LOCK(name) которые не привязаны к
> >> таблице, и удаляются при потере соединения.
> >> Читаем задачу, формируем имя лока, пробуем залочить - получилось -
> >> выполняем, не получилось - переходим к следующей задаче.
> >>
> >> --
> >> Sergey
> >> --
> >> Moscow.pm mailing list
> >> moscow-pm на pm.org | http://moscow.pm.org
> >
> >
> >
> > --
> > Moscow.pm mailing list
> > moscow-pm на pm.org | http://moscow.pm.org
> >
>
>
>
> --
> С уважением, Александр
> Личный блог: http://eax.me/
> Мой форум: http://it-talk.org/
> Мой Twitter: http://twitter.com/afiskon
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20120806/b0155802/attachment.html>


Подробная информация о списке рассылки Moscow-pm