|
Асинхронный запуск скрипта из другого скрипта
|
|||
---|---|---|---|
#18+
Есть два скрипта. Первый подготавливает параметры запуска 2-го скрипта и запускает его. <?php ... $par1=nnn; $par2=mm; shell_exec('vtoroj.php '.$par1.' '.$par2); ... ?> Проблема в том, что по моей задумке первый скрипт (после запуска второго) должен продолжать выполняться. А он ждет окончания второго и только потом продолжается. А как, чтобы не ждал? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2019, 13:32 |
|
Асинхронный запуск скрипта из другого скрипта
|
|||
---|---|---|---|
#18+
Выполнять вызываемую программу в фоне. Символ & ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2019, 14:33 |
|
Асинхронный запуск скрипта из другого скрипта
|
|||
---|---|---|---|
#18+
В конце команды добавь & ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2019, 17:30 |
|
Асинхронный запуск скрипта из другого скрипта
|
|||
---|---|---|---|
#18+
Или можно почитать дальше книжку по основам запуска программ в операционной системе. До передачи аргументов в команду запуска дочитали же. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2019, 17:33 |
|
Асинхронный запуск скрипта из другого скрипта
|
|||
---|---|---|---|
#18+
https://symfony.com/doc/current/components/process.html Вот, не благодари! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2019, 17:50 |
|
Асинхронный запуск скрипта из другого скрипта
|
|||
---|---|---|---|
#18+
vkleВыполнять вызываемую программу в фоне. Чтобы выполнялось асинхронно, оказывается, надо выполнять в фоне. Я даже удивляюсь - как это я сам не догадался? Чтобы каша была с маслом, надо добавить масла. Вот! В конце команды добавь &На всяк случай привожу команду дословно (добуквенно): shell_exec($execPointer.' '.$fromDate.' '.$toDate.' '.$page.' \''.$groupEvent.'\''); Господа советчики, очень прошу - снизойдите от своего корифейства и укажите конкретное место в shell строке, куда приткнуть "&". ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2019, 09:19 |
|
Асинхронный запуск скрипта из другого скрипта
|
|||
---|---|---|---|
#18+
PupkinГоспода советчики, очень прошу - снизойдите от своего корифейства и укажите конкретное место в shell строке, куда приткнуть "&".Амперсанд ставить в самый конец команды, поле параметров, если они есть. И, если возникнут трудности, так уж сделайте, хотя бы, обещанное Вами - приведите команду полностью, а не в виде свалки ничего не говорящих переменных. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2019, 09:43 |
|
Асинхронный запуск скрипта из другого скрипта
|
|||
---|---|---|---|
#18+
vkleприведите команду полностью $fromDate и $toDate - даты из db в формате гггг-мм-дд $page - число int от 1 до теоретически неограниченого $groupEvent='Sync goods'; В db 10 записей с числом от 0 до 9 и их "занятость". Изначально все не занято. возврщает первое свободное число из db в $paramId (или ожидает оное) while(($paramId=GetFreeThreadId($GLOBALS['dbCnn']))==='') usleep(50000); формируется некий номер в $thrNr, используемый далее как часть имени. $thrNr=$GLOBALS['paramId']-3; // Warning!!! For 0-th thread ParamId=3 etc. to 12 формируется имя запускаемого скрипта вида SubSyncId_N.php, где N - число 0..9. скрипты загодя существуют, отличаются только именем и ждут запуска $execPointer='php SyncThreads/SubSyncId_'.$thrNr.'.php'; устанавливается "занятость" числа в db (занятость данного скрипта) UpdateValueInDb('params','Value','1','ParamId='.$thrNr,$groupEvent); запускается скрипт $cmd=$execPointer.' '.$fromDate.' '.$toDate.' '.$page.' \''.$groupEvent.'\''; shell_exec($cmd); запускаемый скрипт анализирует параметры как соответствующие $argv[] и, сделав свою задачу, благополучно умирают (выходят). А умираючи обновляют свою "занятость" в базе на "не занятость". ---- еще раз $fromDate и $toDate - даты из db в формате гггг-мм-дд $page - число int от 1 до теоретически неограниченого $groupEvent='Sync goods'; while ($page) //их много { while(($paramId=GetFreeThreadId($GLOBALS['dbCnn']))==='') usleep(50000); $thrNr=$GLOBALS['paramId']-3; // Warning!!! For 0-th thread ParamId=3 etc to 12 $execPointer='php SyncThreads/SubSyncId_'.$thrNr.'.php'; UpdateValueInDb('params','Value','1','ParamId='.$thrNr,$groupEvent); $cmd=$execPointer.' '.$fromDate.' '.$toDate.' '.$page.' \''.$groupEvent.'\''; shell_exec($cmd); $page++; } ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2019, 11:44 |
|
Асинхронный запуск скрипта из другого скрипта
|
|||
---|---|---|---|
#18+
vkleИли можно почитать дальше книжку по основам запуска программ в операционной системе. До передачи аргументов в команду запуска дочитали же. :) Не надо про книжку, ее нет! Плохо искал? Может быть. Зато нашел немерянное количество ЧерезЖопных предложений, а так же "МопТвоюЯтей" по поводу PHP-шных и MySQL-льных особенностей, каковые очень хорошо охарактеризовали качество выше указанных продуктов для меня - первохода. Не рекомендую никому. И сам (по своему желанию) не возьмусь. Кстати, об передаче аргументов в команду запуска никак не из книжки, а как раз из "МопТвоюЯтей". Ежели насоветуете мне что почитать толковое, буду очень рад и за сове подумаю спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2019, 12:09 |
|
Асинхронный запуск скрипта из другого скрипта
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2019, 18:44 |
|
Асинхронный запуск скрипта из другого скрипта
|
|||
---|---|---|---|
#18+
В конце команды добавь &В комментариях на каком-та форуме (уж не помню где) прочитал совет, что нужно направить вывод в "никуда". Для этого к строке команды нужно добавить такое: " > /dev/null &". Не понимая что делаю, тупо добавил и оно заработало. Асинхронно! Теперь запуск выглядит так: shell_exeс($cmd." > /dev/null &"); что такое $cmd - см. выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2019, 14:30 |
|
Асинхронный запуск скрипта из другого скрипта
|
|||
---|---|---|---|
#18+
Pupkin, вот вы как думаете, хорошо использовать в кросс-платформенном языке читы средства зависимые от платформы? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2019, 08:49 |
|
Асинхронный запуск скрипта из другого скрипта
|
|||
---|---|---|---|
#18+
kealon(Ruslan)Pupkin, вот вы как думаете, хорошо использовать в кросс-платформенном языке читы средства зависимые от платформы? Кросс-платформенность языка не предполагает того, что на нем будут писать кросс-платформенные продукты. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2019, 10:33 |
|
Асинхронный запуск скрипта из другого скрипта
|
|||
---|---|---|---|
#18+
Точнее сказать "не обязывает". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2019, 10:33 |
|
Асинхронный запуск скрипта из другого скрипта
|
|||
---|---|---|---|
#18+
HettТочнее сказать "не обязывает".если есть поддерживаемая либа, то писать напрямую это дурной тон ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2019, 10:54 |
|
Асинхронный запуск скрипта из другого скрипта
|
|||
---|---|---|---|
#18+
kealon(Ruslan)HettТочнее сказать "не обязывает".если есть поддерживаемая либа, то писать напрямую это дурной тон Согласен, но платформо-зависимость тут не причем. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2019, 11:11 |
|
|
start [/forum/topic.php?fid=23&msg=39756663&tid=1460035]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
101ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 256ms |
total: | 435ms |
0 / 0 |