Периодически запуск сценариев
Модератор: immortal
-
- Сообщения: 2087
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 458 раз
Re: Периодически запуск сценариев
анекдот вспомнился
- почему киты выбрасываются на берег?
- а им кто-то сказал, что они тоже млекопитающие...
- почему киты выбрасываются на берег?
- а им кто-то сказал, что они тоже млекопитающие...
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1753 раза
- Контактная информация:
Re: Периодически запуск сценариев
По сути да, но gg() это лишние запросы и нагрузка.
Лучше использовать очередь сообщений - таблица operations_queue (с типом MEMORY, т.е. висит она в оперативке).
Добавить в очередь:
Код: Выделить всё
addToOperationsQueue('queue_name', 'dataname', 'datavalue');
Код: Выделить всё
$operations=checkOperationsQueue('queue_name');
- Рейтинг: 2.33%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
- Bagir
- Сообщения: 1614
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Периодически запуск сценариев
Вот сколько уже лет с Алисой, но с таблицей operations_queue ещё не работал. Похоже это самое то, и даже без нагромождения своего кода. Спасибо за совет, сейчас думаю, куда бы ещё применить этот инструмент.
Сокеты действительно можно использовать напрямую для этой задачи. Я как то не подумал об этом, хоть только что использовал их для отправки сообщений в свою программу для музыки и чтения сообщений. Как то сокеты у меня больше с сетевыми запросами ассоциируются, но почему бы и нет.
Если сегодня доберусь, попробую с таблицей operations_queue. А там посмотрим.
- Bagir
- Сообщения: 1614
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Периодически запуск сценариев
Не нашел никакой инфы по функции для очереди addToOperationsQueue. Полез разбираться в php коде.
-
- Сообщения: 2087
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 458 раз
Re: Периодически запуск сценариев
а ее никто, кроме пу не использует и при добавлении пять аргументов, последние два очень существенны (но не обязательны) ...
а так просто все
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
- Bagir
- Сообщения: 1614
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Периодически запуск сценариев
Вот такой вопрос: файл threads.php отвечает за запуск и остановку циклов. Код функции closeThread($id):
Кто в курсе, почему для закрытия процесса отказались от функции proc_terminate? У меня под виндой вроде хорошо работает. А вот taskkill просит библиотеку, которую я ни как не могу прикрутить. Ругается на не найденную точку входа. С библой наверное можно разобраться, но мне интересно, почему ушли от proc_terminate. Вроде как правильней закрывать процесс ею, если он был открыт через proc_open.
Код: Выделить всё
public function closeThread($id) {
$pstatus = proc_get_status($this->handles[$id]);
$pid = $pstatus['pid'];
$cmd = $pstatus['command'];
DebMes("Closing thread $pid ($cmd)",'threads');
/* */ if (!proc_terminate($this->handles[$id])) {
/* */ DebMes("Cannot close process $pid ($cmd) with proc_terminate",'threads');
if (IsWindowsOS()) {
$exec_str="taskkill /F /T /PID $pid";
} else {
$exec_str="kill -9 $pid";
}
DebMes("Executing: ".$exec_str,'threads');
$output = array();
$result = exec($exec_str,$output);
DebMes("Result: ".implode("\n",$output),'threads');
/* */ } else {
/* */ DebMes("Process $pid ($cmd) closed with proc_terminate",'threads');
/* */ }
}
- xor
- Сообщения: 2041
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Периодически запуск сценариев
странно, что у вас тасккилл ругается, она же идет как команда ос, начиная с хр. Может, у вас что-то с дистрибутивом?Bagir писал(а): ↑Чт июн 04, 2020 12:55 pmВот такой вопрос: файл threads.php отвечает за запуск и остановку циклов. Код функции closeThread($id):Кто в курсе, почему для закрытия процесса отказались от функции proc_terminate? У меня под виндой вроде хорошо работает. А вот taskkill просит библиотеку, которую я ни как не могу прикрутить. Ругается на не найденную точку входа. С библой наверное можно разобраться, но мне интересно, почему ушли от proc_terminate. Вроде как правильней закрывать процесс ею, если он был открыт через proc_open.Код: Выделить всё
public function closeThread($id) { $pstatus = proc_get_status($this->handles[$id]); $pid = $pstatus['pid']; $cmd = $pstatus['command']; DebMes("Closing thread $pid ($cmd)",'threads'); /* */ if (!proc_terminate($this->handles[$id])) { /* */ DebMes("Cannot close process $pid ($cmd) with proc_terminate",'threads'); if (IsWindowsOS()) { $exec_str="taskkill /F /T /PID $pid"; } else { $exec_str="kill -9 $pid"; } DebMes("Executing: ".$exec_str,'threads'); $output = array(); $result = exec($exec_str,$output); DebMes("Result: ".implode("\n",$output),'threads'); /* */ } else { /* */ DebMes("Process $pid ($cmd) closed with proc_terminate",'threads'); /* */ } }
ps TSKILL ещё есть для многопользовательских систем
win10 connect https://connect.smartliving.ru/profile/303
- Bagir
- Сообщения: 1614
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Периодически запуск сценариев
Похоже на то. Или какая-нибудь зараза приволокла и прописала другую версию этой библы. Вечерком попробую восстановить стандартные библиотеки.
Мне больше покою не дает вопрос, почему отказались от функции proc_terminate. Сегодня буду пробовать с ней играться.
- Bagir
- Сообщения: 1614
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Периодически запуск сценариев
Вот только ещё один момент, на моем пути к теме топика. Ранее не написал, думал что грабли лежат на траве, а нет, спрятаны. Когда я жму кнопку Stop в xray -> Services, циклы успешно останавливаются, но затем сразу стартуют по новой. Похоже куда то переехали правила авторекавери.
Что то я дольше даже не наблюдаю участие массива $restart_threads из config.php в cycle.php, да и вообще где либо. Я круто отстал от жизни МД...
Что то я дольше даже не наблюдаю участие массива $restart_threads из config.php в cycle.php, да и вообще где либо. Я круто отстал от жизни МД...
-
- Сообщения: 2087
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 458 раз
Re: Периодически запуск сценариев
массив выкинь его и в цикл пхп выкинутьBagir писал(а): ↑Чт июн 04, 2020 8:50 pmВот только ещё один момент, на моем пути к теме топика. Ранее не написал, думал что грабли лежат на траве, а нет, спрятаны. Когда я жму кнопку Stop в xray -> Services, циклы успешно останавливаются, но затем сразу стартуют по новой. Похоже куда то переехали правила авторекавери.
Что то я дольше даже не наблюдаю участие массива $restart_threads из config.php в cycle.php, да и вообще где либо. Я круто отстал от жизни МД...
а по стоп все работает
в тлг многое уже обсуждено, это ночью прошлой ковырял
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо