Size: a a a

2019 September 23

U

User in PHP DevConf
Не через крон
источник

U

User in PHP DevConf
Зачем запускать каждую минуту, если неизвестно, сколько длится процесс
источник

A

Adilet in PHP DevConf
Alex Molchanov
Привет! Чот или я под вечер туплю. Или одно из двух 😏 смотрите, у меня есть скрипт, который выполняется долго. У меня есть крон задача, которая запускается каждую минуту. При первом вызове скрипта перед работой я пишу в файловую систему файл, мол, воркер работает. Когда задача завершается, она киляет этот файл.

Перед записью этого файла у меня есть проверка на существование файла и его время, если оно менее N минут, то мы считаем, что воркер работает ещё.

Почему, когда я запускаю вызов скрипта раз, и через минуту второй раз, то второй скрипт продолжает выполнятся?

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

Как мне убить второй скрипт, если первый ещё выполняется? Что бы они не копились в процессах?

Беда в том, что не известно, сколько будет выполняется каждый запуск скрипта.
supervisor
источник

AM

Alex Molchanov in PHP DevConf
Вобщем все просто вышло. Я тестировал через браузер 😅 через консоль норм и через сторонний браузер норм
источник

AM

Alex Molchanov in PHP DevConf
Браузер передает сессию и php пытается дать один и тот же ответ в обе вкладки. Типа того, как я понял
источник

DS

Damir Sarbayev in PHP DevConf
Alex Molchanov
Привет! Чот или я под вечер туплю. Или одно из двух 😏 смотрите, у меня есть скрипт, который выполняется долго. У меня есть крон задача, которая запускается каждую минуту. При первом вызове скрипта перед работой я пишу в файловую систему файл, мол, воркер работает. Когда задача завершается, она киляет этот файл.

Перед записью этого файла у меня есть проверка на существование файла и его время, если оно менее N минут, то мы считаем, что воркер работает ещё.

Почему, когда я запускаю вызов скрипта раз, и через минуту второй раз, то второй скрипт продолжает выполнятся?

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

Как мне убить второй скрипт, если первый ещё выполняется? Что бы они не копились в процессах?

Беда в том, что не известно, сколько будет выполняется каждый запуск скрипта.
используй симфони компонент вроде lock называется, в комплекте еще трейт, он специально для консольных команд сделан, что бы не запускать скрипт который уже работает
источник

AM

Alex Molchanov in PHP DevConf
Спасибо! Там небольшой скрипт на чистом пхп, тащить зависимостей не круто :)  flock или как я делал простым file_put.. норм работало. Просто не знал о такой фиче, что пых на сессию скрипт запоминает. Потому в одном браузере тупило на разных вкладках. "Переехал" тестировать в консольку и всё отлично прошло.
источник

O

Olzhas in PHP DevConf
Alex Molchanov
Браузер передает сессию и php пытается дать один и тот же ответ в обе вкладки. Типа того, как я понял
Ошибка новичка
источник

O

Olzhas in PHP DevConf
Поэтому для сессий всякий мемкешд или редис юзают
источник

AM

Alex Molchanov in PHP DevConf
Особенно в кроне 😏 я просто решил облегчить себе жизнь, выводя json в браузер 🙃 а оказалось гемору поймал
источник

AM

Alex Molchanov in PHP DevConf
А так да, ранее про эту "фичу" не знал. Да и забудется, через год или два опять попадусь 😅
источник

SR

Serik RAKHMETOV in PHP DevConf
обращайся
источник

SR

Serik RAKHMETOV in PHP DevConf
чатик в помощь
источник
2019 September 24

O

Olzhas in PHP DevConf
Всегда проигнорим
источник

O

Olzhas in PHP DevConf
источник

AM

Alex Molchanov in PHP DevConf
🖖😏 спасибо поцоны! Всегда знал, что на вас можно положиться! 😂
источник

O

Olzhas in PHP DevConf
Ну ты юзай чатик
источник

O

Olzhas in PHP DevConf
Он вместо уточки
источник

O

Olzhas in PHP DevConf
источник

AM

Alex Molchanov in PHP DevConf
Может мне поговорить хотелось 😝
источник