как запускать новый процесс без размножения?

12
seosniks
На сайте с 13.08.2007
Offline
389
#11
netwind:
So1, Хотя, применительно к cron, запускаемому каждую минуту такое почти невозможно.

Крон может хоть каждую секунду дергать файл, это не важно если стоит проверка

которая не даст скрипту выполнить задачу которая уже выполняется, крон будет просто дергать скрипт в холостую.

N
На сайте с 06.05.2007
Offline
419
#12

seosniks, зависит от того, какую именно проверку вы реализовали.

вы читайте другие сообщения, моделируйте в уме ситуации..

Кнопка вызова админа ()
[Удален]
#13
netwind:
So1, а вот как раз такую наивность я и имел ввиду.
опытный разработчик знает, что между проверкой отсутствия файла и созданием этого файла может пройти какое-то время и два одновременно запущенных скрипта не заметят друг друга.
Блокировка эту проблему исключает. Хотя, применительно к cron, запускаемому каждую минуту такое почти невозможно.

Вы пробовали реализовать так, как я написал?

Если даже этот вариант не устраивает, берете под эту задачу компилите отдельный PHP, запускаете задачу по крону парсите выдачу ps auxw | grep <путь до php ропера>

Дальше понтяно. Это бОльшее извращение.

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

Да. Может пройти. Примерно 0.0002 миллисекунды в зависимости от HW. Проверка ключа мемкеша быстрее - используйте этот способ.

Опытный разработчик знает, а я так - вчера книжку про PHP прочитал ))

N
На сайте с 06.05.2007
Offline
419
#14
So1:
Да. Может пройти. Примерно 0.0002 миллисекунды в зависимости от HW. Проверка ключа мемкеша быстрее - используйте этот способ.

Если сервер засвопился - могут пройти минуты.

[Удален]
#15
netwind:
Если сервер засвопился - могут пройти минуты.

Я сматываю удочки. Вы много теоретизируете и не хотите реализовывать ни одним из предложенных способов. Проверка опытным путем лучше любой другой. Сделайте что-нибудь. Если вы ищите опытного ответа, то я вам его дал уже. Я не с горы взял все эти способы - каждый из них у меня реализован на разных больших проектах (и с использованием мемкеша и с использованием файлов). С ипользованием файлов мне удобно тем, что я могу посмотреть дату создания и понять когда начал выполняться процесс. Мемкеш - быстро и удобно. Никаких проблем не было за вот уже несколько лет ни с файлами, ни с мемкешем.

Удачи.

N
На сайте с 06.05.2007
Offline
419
#16

So1, 4 людям, которые умерли из-за этой ошибки, проблема показалась вполне реальной - http://ru.wikipedia.org/wiki/Race_condition

[Удален]
#17

И конечно они писали подобные системы на PHP, который нельзя нормально распараллелить. Race condition в первую очередь связан с неправильным использованием общих ресурсов параллельно выполняющимися процессами, а вы их пока что отказываетесь использовать вовсе.

К стати, что у вас за задача? )

N
На сайте с 06.05.2007
Offline
419
#18

php прекрасно паралеллится - можно запустить два скрипта одновременно, что может привести к

race condition - общему названию всех ошибочных программистких допущений о том, что какие-то части важной программы выполняются "наверняка очень быстро" без специальной блокировки.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий