Страница 1 из 2
Косяк с блокировками строк в task
Добавлено: 2016-05-22 23:18:51
Adminchic
Наблюдаю странный глюк.
Один таск может запустится два и более раз,
В логах
select is_free_lock(0001)
select get_lock
начинаем чтото делать, там есть длинная операция
параллельно другие операции
потом снова хватаем этот таск
select is_free_lock(0001)
select get_lock
И снова начинаем чтото делать по этому таску
Грешил сперва на то что долгий таймаут, но рассудив, должен же получить отлупу, а не получает, я не вижу ругани вообще о тот что установлена блокировка.
Как мне кажется, причина в демоне, он выполняется в пределах одной сессии и сам же и сбрасывает блокировки и начинает заниматься ерундой.
Косяк с блокировками строк в task
Добавлено: 2016-05-22 23:25:37
Adminchic
К стати, из за этого косяка. вероятно и бага с пустыми сообщениями на Email, есть тема и на этот все.
Косяк с блокировками строк в task
Добавлено: 2016-05-23 1:12:35
Adminchic
Господа, а для чего килить процесс, который в данный момент обрабатывает задание?
Косяк с блокировками строк в task
Добавлено: 2016-05-23 9:57:11
Alex Keda
ничё не понял ...
попробуйте базу рестартануть или весь сервер.
если таски зависают - помогает
бывает такое, раз в пару месяцев
Косяк с блокировками строк в task
Добавлено: 2016-05-23 11:15:38
Adminchic
Alex Keda писал(а):ничё не понял ...
попробуйте базу рестартануть или весь сервер.
если таски зависают - помогает
бывает такое, раз в пару месяцев
А чего не понятно, во время выполнение таска, килится процесс. в итоге таск часть сделал а часть не успел, гениальное решение.
Косяк с блокировками строк в task
Добавлено: 2016-05-24 17:19:54
Alex Keda
кем "килится"?
биллинг сам по себе никаких процессов не убивает.
единственный вариант - если не было выполнено ни одного задания за последний час
что само по себе, при нормальной работе, невозможно - за час несколько тасков проскакивает
если нету тасков - что-то висит. лично у меня - 99% случаев - это аська/жаббер/etc или сервер не отвечает
от первого помогает убиение на 100%, без последствий, от второго - зависит от причины.
но в любом случае - это лучше чем часами или даже сутками вообще никакие задачи не будут выполнятся
да и как это "наполовину"?
все задачи обёрнуты в транзакцию, если таск убит, транзакция просто откатится
Косяк с блокировками строк в task
Добавлено: 2016-05-29 13:48:17
Adminchic
Alex Keda писал(а):кем "килится"?
биллинг сам по себе никаких процессов не убивает.
единственный вариант - если не было выполнено ни одного задания за последний час
что само по себе, при нормальной работе, невозможно - за час несколько тасков проскакивает
если нету тасков - что-то висит. лично у меня - 99% случаев - это аська/жаббер/etc или сервер не отвечает
от первого помогает убиение на 100%, без последствий, от второго - зависит от причины.
но в любом случае - это лучше чем часами или даже сутками вообще никакие задачи не будут выполнятся
да и как это "наполовину"?
все задачи обёрнуты в транзакцию, если таск убит, транзакция просто откатится
Я этот биллинг знаю вдоль и поперек, не совсем понятно, причем тут транзакции и либы которые взаимодействуют с внешними приложениями.
Опишу еще раз:
Начинаем обрабатывать таск.
Либа чтото там делает на сервере во вне.
Прилетает из шела 2016-05-29 in 13:37:00: php-cgi auto killed, no executed tasks more than one hour
А на сервере то создался контейнер, но не переписал ему значение памяти, диска, pv_args и т.д.
Что мы получаем?
Контейнер создан, но не таск об этом не знает так как либа не успела сказать что таск исполнен и все начинается по кругу
Косяк с блокировками строк в task
Добавлено: 2016-05-29 13:56:40
Alex Keda
час чтоле делает?
вы сами-то читаете то что цитируете?
--
если же знаете вдоль и поперёк - то какие проблемы исправить ошибку?
Косяк с блокировками строк в task
Добавлено: 2016-05-29 14:11:45
Adminchic
Alex Keda писал(а):час чтоле делает?
вы сами-то читаете то что цитируете?
--
если же знаете вдоль и поперёк - то какие проблемы исправить ошибку?
Я не большой знаток шела, я просто вырезал кусок с killall
Килится он по какому то алгоритму с временем и таймштампов в файлике TaskLastExecute.txt, еще раз, я не сильно понимаю шел скрипты, так что почему он килит каждую минуту, трудно сказать, крон обрабатывает скрипт каждые пару минут.
Косяк с блокировками строк в task
Добавлено: 2016-05-29 14:21:40
Alex Keda