Yaroslav
эту, например
Василий
невменяемые крон раз в минуту запускают
Пошли еще раз по кругу - разработчики Laravel "невменяемые" люди?
Yaroslav
Пошли еще раз по кругу - разработчики Laravel "невменяемые" люди?
чего далеко ходить. Хамстра тоже) (https://docs.modmore.com/en/Open_Source/Scheduler/Scheduling_a_Task.html)
Sergey_K
Я тупой наверное. Чем ТЕХНИЧЕСКИ плох крон раз в минуту? Паша, по твоей ссылке было написано, что очереди нужны для задач, где важна последовательность.
Павел
Пошли еще раз по кругу - разработчики Laravel "невменяемые" люди?
Они описали один из способов запуска и ПО МОЕМУ ЛИЧНОМУ МНЕНИЮ - невменяемый
Василий
Да это, как-бы, принцип всех таких шедулеров - запускать основной скрипт 1 раз в минуту, а внутри него уже всё разруливать
Sergey_K
Тогда идеология REST невменяемая по определению. Т.к. она не зависит от состояния и, в частности, очередности.
Василий
Они описали один из способов запуска и ПО МОЕМУ ЛИЧНОМУ МНЕНИЮ - невменяемый
Почему? Скрипт запустился, работы нет, закончился. В чём невменяемость?
Павел
Почему? Скрипт запустился, работы нет, закончился. В чём невменяемость?
ровно до тех пор пока не случится такого, что скрипт за минуту отработать не успел а в очередях это невозможно по определению
Василий
Это командный скрипт. Он запускает другие работы Другие работы могут работать по любому расписанию, но основной скрипты должен запускаться раз в минуту, чтобы выполнять это любое расписание Иначе смысла в нём нет и расписание нужно делать напрямую в cron, а не в php
Павел
Кончено
Василий
Василий
Конвент
Какой еще конвент? lock файл, unix, алло
Василий
Вот здесь onlyOne говорит, что надо сделать lock и не запускать задачу второй раз, если первая еще работает Без очередей, прикинь
Василий
Внезапно Что там насчёт вменяемости?
Sergey_K
прикольно, не знал
Ты серьезно сейчас?
Павел
Внезапно Что там насчёт вменяемости?
Мое мнение не изменилось Ну клево что можно Мир не просто так придумал RabbitMQ и прочие вещи
Павел
А crontab просто так придумал?
Инструментов миллион, что это меняет?
Sergey_K
А crontab просто так придумал?
Вась, вот отсюда я брал. И вот у меня require_once все испортил как раз.
Anonymous
Я вообще не понимаю почему вы спорите и сравниваете расписание и поочерёдное выполнение задач. Это две разные вещи
Павел
спор примерно какой как java vs .net
Василий
Спор о том, что Паша высокомерно называет людей "невменяемыми" при том, что даже принцип lock задачи не знает
Anonymous
Чтобы задача стала в очередь, её туда кто-то должен поставить
Anonymous
А крон он просто берёт по времени и делает одно и тоже
Anonymous
И если задача ставит сама себя, это тупой перерасход ресурсов
Василий
Вась, вот отсюда я брал. И вот у меня require_once все испортил как раз.
Ну не должен он испортить ничего, не должен На таких плагинах сам modstore работает, и по крону там дофига чего - и с 2013 года всё ок
Sergey_K
Ну не должен он испортить ничего, не должен На таких плагинах сам modstore работает, и по крону там дофига чего - и с 2013 года всё ок
Вась, ну я за что купил, за то продал. Я думаю, что "где-то" дважды за скрипт отрабатывает getService("") и тогда вот так будет.
Sergey_K
Хотя вчера работало как есть :)
Василий
А у тебя постоянно всякая магия тварится, наверное везучий очень. Я как в чат не зайду, Серёжа то просто MODX, то вместе с моими дополнениями в говнокодинге обвиняет. Не, они не идеальные конечно, но и не настолько плохие =)
Василий
Вась, ну я за что купил, за то продал. Я думаю, что "где-то" дважды за скрипт отрабатывает getService("") и тогда вот так будет.
getService кэширует внутри себя сервис, так что вряд ли. Это типа такой Service Locator для бедных в MODX Он повторно ничего не запускает
Yaroslav
Вась, ну я за что купил, за то продал. Я думаю, что "где-то" дважды за скрипт отрабатывает getService("") и тогда вот так будет.
getService просто ссылку возвращает если найден… синглтоновый сервис-локатор. разве нет?
Василий
как будто невменямые люди это что-то плохое
Очевидно, это что-то хорошее Ты комплимент сделал, ага
Павел
Очевидно, это что-то хорошее Ты комплимент сделал, ага
ой ну не перевирай. это характеристика, а не комплимент
Василий
Ладно, хоть теперь будешь знать, что при выполнении задачи по крону можно создать файлик и проверять его наличие при повторном запуске. А после окончания - удалять И никаких повторных запусков и лимитов в 1 минуту не будет
Василий
Хотя вчера работало как есть :)
Ну ты раз нашёл место проблемное, сделай там var_dump или debug_backtrace когда require неправильно проходит и выясни, в чём дело
Sergey_K
Так я уже выяснил
Sergey_K
Вот так он делает map
Василий
Неа, не выяснил У тебя ПОЧЕМУ-ТО 2 раза грузится плагин и во второй раз неправильно. А почему он так делает - никто не знает
Sergey_K
Потому что require_once возвращает не массив, а true
Sergey_K
crhby dsit
Sergey_K
скрин выше
Василий
Еще раз - плагины ms2 не должны запускаться 2 раза.
Sergey_K
Ну так если у меня два статических метода
Sergey_K
и в каждом инит идет мс2
Sergey_K
дальше они "встречаются" в одном месте и вуаля
Василий
А, ну вот и говнокод
Sergey_K
ошики нет, просто выбрасывается это предупреждение.
Sergey_K
А, ну вот и говнокод
В чем говнокод?
Василий
двойная инициализация одного и того же
Sergey_K
Ну так ты говоришь сам, что он кэширует)
Sergey_K
И не пересоздает
Василий
Серёг, ты так мне пишешь, как-будто я твой код вижу где так что у тебя и зачем по 2 раза вызывается
Yaroslav
Ну так если у меня два статических метода
«постоянно задавайте себе вопрос: а не х..ню ли я делаю?» но если 2 статических метода работают не с аргументом а с каким-то статическим контекстом (не доведи еще и с состоянием), то проще пойти и повеситься, чем отладить их взаимодействие
Василий
2 статических метода инициализаируют ms2 и пересекаются - даже думать об этом не хочу
Василий
за один проход, видимо?
Василий
походу, задний
Sergey_K
В одном процессе, да.
Sergey_K
Просто в методе loadMap() стоят проверки. Кроме последней проверки, которая должна убедиться, что ты из файла получаешь массив.
Василий
Ну и // For legacy plugins тоже намекает
Sergey_K
Да, последний foreach
Sergey_K
Я хз что такое легаси плагинс, ваще не лазал туда пока не приперло)
Василий
Ну да, я не предусмотрел, что кто-то напишет такой код, который 2 раза инициализирует ms2, вернёт массив внутри которого будут не массивы, а true и тем самым что-то сломается И всё это в legacy методе несколько летней давности
Sergey_K
Ну так я не говорю, что это говнокод
Sergey_K
Скорее редкая особенность
Sergey_K
Всего не учтешь, фигле
Василий
Да, это правда Но именно из-за подобных возможностей расширения ms2 и живёт по сей день, когда остальные уже фактически загнулись Даже новые допы выходят
Василий
И я всё-так настаиваю, что ты собираешь аномальное количество проблем и тебе нужно работать тестировщиком
Sergey_K
В мс2 впилить пару интерфейсов по модели оплат и доставлк и жить будет сто лет еще