суббота, 12 марта 2016 г.

Сброс Symfony Lock

Внезапно на Symfony проекте прекратил работу ежеминутный комманд.
В логе сообщалось, что комманд не работает, так как уже запущен экземпляр данного комманда. Это реализуется с помощью стандартного компонента Symfony.

Расспросы причастных показали, что процесс комманда был убит ручками. В связи с этим, стало ясно, что процесс убит, а какой-то флаг, отвечающий за то, что процесс еще работает - остался в живых. Значит, надо удалить lock флаг.

Поиски были краткими:

1. ищем реализацию хендлера в ядре симфони

2. так как кастомный путь к локам в хендлер не передавался - ищем лок-файл во временной папке (если никто ничего не менял то это /tmp/)

3. Смотрим, какие файлы есть во временной папке и удаляем нужный.
Название файла, как можно судить из кода на гитхабе формируется из префикса sf, названия лока, переданного в комманд и хеша этого названия.
Таким образом, если ваш лок называется, например my.lock, то найти и удалить надо файл, начинающийся с sf.my.lock

Затем удаляем данный файл и проверяем, как работает комманд.

Комментариев нет:

Отправить комментарий