|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
В общем задача: при вызове скрипта чтобы он максимум в !5 флопов! дал метку что его вызвали другим скриптам... вариант с файл.lock - не попадает ((( $_SESSION - ну вообще... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2017, 16:23 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
Чем file.lock не подходит? Через memcache наверное можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2017, 06:34 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
Не успевает ( ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2017, 08:17 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
Не успевает что? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2017, 08:38 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
5 флопов - это ж по нынешним меркам что-то около нуля по времени. Учитывая, что интерпретатор PHP делает валидацию перед непосредственно исполнением скрипта, сомневаюсь, что такая схема вообще сработает. А вызывающий скрипт не может сделать уведомление о запуске заранее? Ну, как вариант, конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2017, 16:50 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
в том то и беда что часть запросов попадает с разницей что-то около нуля... и из-за этого дубли. HettНе успевает что?не успевает образоваться файл.lock до проверки на него наличия по итогу проскакивают 3-4 дубля... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 07:38 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
http://php.net/manual/ru/memcache.add.php Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 08:04 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
re_qasв том то и беда что часть запросов попадает с разницей что-то около нуля... и из-за этого дубли. HettНе успевает что?не успевает образоваться файл.lock до проверки на него наличия по итогу проскакивают 3-4 дубля...Что-то вы неправильно делаете... Код: php 1.
либо файла не было, он создался и вернулся хендл, либо файл был, случилась ошибка создания и вернулся null. Никак не могут два скрипта одновременно создать один и тот же файл. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 08:10 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
Barlonere_qasв том то и беда что часть запросов попадает с разницей что-то около нуля... и из-за этого дубли. пропущено... не успевает образоваться файл.lock до проверки на него наличия по итогу проскакивают 3-4 дубля...Что-то вы неправильно делаете... Код: php 1.
либо файла не было, он создался и вернулся хендл, либо файл был, случилась ошибка создания и вернулся null. Никак не могут два скрипта одновременно создать один и тот же файл.я проверяю Код: php 1. 2. 3. 4. 5. 6.
и умудряются лезть дубли ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 20:17 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
$file откуда берется? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 20:20 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
ну понятно что $file = 'file.lock' а потом в алге идет fclose($fp) и unlink($file) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 20:21 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
re_qasну понятно что $file = 'file.lock' а потом в алге идет fclose($fp) и unlink($file) точнее Код: php 1.
и дальше именно по этому $bid идет запрос на то что нужно добавить, если по $bid возвращается false то естественно не то... ну и в логах по три-четыре раза реально int и 1=1 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 20:37 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
хочется заменить на что-то рода Код: php 1. 2. 3. 4. 5.
но соответственно сессии разные ((( ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 20:44 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
re_qasя проверяю Код: php 1. 2. 3. 4. 5. 6.
и умудряются лезть дублиНе может быть такого дикого бага в РНР, это бы давно заметили... Полностью код покажите. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 20:45 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
Кстати, тут у вас проверяется один файл, а создается другой... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 20:49 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
re_qas, Исходную задачу опишите подробно. Возможно, найдется какой-то другой способ решения. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 20:55 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 20:59 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
vklere_qas, Исходную задачу опишите подробно. Возможно, найдется какой-то другой способ решения.при активной сессии организовать автодобавление через апи с сайта А на сайт Б новых данных. ограничения: активная сессия должна быть к двум сайтам (крон отпадает), ограничение авторизации именно апи... второй нюанс активных сессий - 1500 +/-... период обновления - раз в 5 минут... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 21:04 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
re_qasактивных сессий - 1500 +/-... период обновления - раз в 5 минут...Вот тут не вполне понятно. Обновлялка одна на все сессии или же у каждой сессии своя (вроде, отдельный запуск скрипта с определенными параметрами)? В каком именно местеre_qasпо итогу проскакивают 3-4 дубля...? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 21:11 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
vkleВ каком именно местеre_qasпо итогу проскакивают 3-4 дубля...? именно при пробросе с апи в бд... vklere_qasактивных сессий - 1500 +/-... период обновления - раз в 5 минут...Вот тут не вполне понятно. Обновлялка одна на все сессии или же у каждой сессии своя (вроде, отдельный запуск скрипта с определенными параметрами)? одна. параметры для обновления различаются только при инициализации cmf при инициализации авторизации сервер-сервер по апи, дальше только $bid при этом в части обработки есть проверка Код: php 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 21:16 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
вообще сложилось такое впечатление что 3-4 процесса (условно сервер 8 ядерный, пхп х86) срабатывают абсолютно параллельно ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 21:23 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
re_qasодна.В смысле, должен произойти единственный запуск скрипта. Параметры запуска один раз вычислили и любая попытка запуска должна использовать именно их. Правильно понимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 21:24 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
re_qasвообще сложилось такое впечатление что 3-4 процесса (условно сервер 8 ядерный, пхп х86) срабатывают абсолютно параллельноСам по себе PHP однопоточный. Пока не запустишь отдельный процесс (форком или внешним скриптом запуска), не будет ничего параллельного. Конечно, есть вариант, когда при нескольких конкурирующих попытках запуска требуется обеспечить гарантировано один экземпляр запущенного скрипта. Тогда обычно использую такую пару строк: Код: php 1. 2.
У меня с этих строк по крону стартуют относительно долгоиграющие скрипты когда заранее невозможно определить предполагаемую продолжительность работы скрипта. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 21:32 |
|
PHP межпроцессовое взаимодействие
|
|||
---|---|---|---|
#18+
vklere_qasодна.В смысле, должен произойти единственный запуск скрипта. Параметры запуска один раз вычислили и любая попытка запуска должна использовать именно их. Правильно понимаю?именно этой части идет наличие по uri $bid через пост и проверка дольше только то этому одному параметру... само добавление ветвлится но на другие $bid перепрыгнуть не может - $bid - корень... новый появляется 4-10 раз в 5 минут... раз в 5 минут у всех 1500+ срабатывает запрос на обновление... этот запрос возвращает список $bid, по которому пинается скрипт на добавление по принципу кто первый от того и добавим - остальных нах... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 21:34 |
|
|
start [/forum/topic.php?fid=23&msg=39467319&tid=1460613]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 183ms |
0 / 0 |