
Максим
04.05.2018
20:12:48

Artem
04.05.2018
20:15:38
вместо одной таблицы с json параметром Вы предлагаете использовать 2, да еще и заморачиваться с сохарнением в каждую из них.
и почему настройки лучше не хранить в формате json?
есть объективные показатели или просто нет опыта использования?

Максим
04.05.2018
20:16:46

Google

Максим
04.05.2018
20:17:25

Тимур
04.05.2018
20:47:43
ребят привет. надо при сохранении модели получить поля которые были изменены. как сделать?

Владимир
04.05.2018
20:50:01

Тимур
04.05.2018
20:50:21
да. какраз нашел только что)) спасибо)

Alexey
05.05.2018
03:58:08
ребята, подскажите идею как реализовать следующее:
в црм есть события, которые повторяются через определенные промежутки времени, например событие повторяется каждый вторник, в БД хранится день недели в который оно срабатывает и timestamp ближайшего срабатывания, крон пробегается по здачам, которые должны сегодня сработать и переносит timestamp на следующий вторник.
Заказчик хочет чтобы повторяющееся событие в таблице списка событий было выведено несколько раз, т.е. например если выбран интервал 1 мес., то нужно чтобы это событие было выведено в каждом вторнике, а если ежедневное событие, то в каждом дне его выводить.
Записывать в БД на будущее сразу на все вторники? Но тогда сколько этих записей должно быть на будущее? )) Или можно как-то клонировать эту запись уже после выборки из БД?


Firs
05.05.2018
04:16:00
ребята, подскажите идею как реализовать следующее:
в црм есть события, которые повторяются через определенные промежутки времени, например событие повторяется каждый вторник, в БД хранится день недели в который оно срабатывает и timestamp ближайшего срабатывания, крон пробегается по здачам, которые должны сегодня сработать и переносит timestamp на следующий вторник.
Заказчик хочет чтобы повторяющееся событие в таблице списка событий было выведено несколько раз, т.е. например если выбран интервал 1 мес., то нужно чтобы это событие было выведено в каждом вторнике, а если ежедневное событие, то в каждом дне его выводить.
Записывать в БД на будущее сразу на все вторники? Но тогда сколько этих записей должно быть на будущее? )) Или можно как-то клонировать эту запись уже после выборки из БД?
Календарь чтоль нужен?

Alexey
05.05.2018
04:16:26
загвоздка именно с повторяющимися событиями, с запланированными все просто, они выводятся в дату, на которую запланированы.

Firs
05.05.2018
04:24:47

Alexey
05.05.2018
04:28:48
т.е. в цикле перебирать не массив событий, а дни заданного диапазона (например за месяц) и сверять день недели? Тогда не получится сортировать и фильтровать таблицу по атрибутам события.
вот макет с повторяющимися событиями
https://monosnap.com/file/7S34IW9972M2wkYFeSCWW70XSCs8Q3.png

Firs
05.05.2018
04:36:47


SiZE
05.05.2018
05:13:46
ребята, подскажите идею как реализовать следующее:
в црм есть события, которые повторяются через определенные промежутки времени, например событие повторяется каждый вторник, в БД хранится день недели в который оно срабатывает и timestamp ближайшего срабатывания, крон пробегается по здачам, которые должны сегодня сработать и переносит timestamp на следующий вторник.
Заказчик хочет чтобы повторяющееся событие в таблице списка событий было выведено несколько раз, т.е. например если выбран интервал 1 мес., то нужно чтобы это событие было выведено в каждом вторнике, а если ежедневное событие, то в каждом дне его выводить.
Записывать в БД на будущее сразу на все вторники? Но тогда сколько этих записей должно быть на будущее? )) Или можно как-то клонировать эту запись уже после выборки из БД?
Храни только номер дня недели. Вычисляешь ближайшую дату на этот день, остальные через интервал. Все средствами бд

Google

SiZE
05.05.2018
05:14:15
Можешь конечно лог срабатываний вести

Vano
05.05.2018
05:55:38
так вот, основная мысль: для каждой задачи, независимо от того, будет она сейчас выполняться или нет, считать next_run и записывать в поле базы
а дальше кроном ловить задачи, у которых next_run <= now, не забывая потом высчитать новый next_run

Alexey
05.05.2018
06:00:40

Vano
05.05.2018
06:01:11
задач много?
сколько ноликов?

Alexey
05.05.2018
06:02:15
Пока мало до тысячи, систему только начали делать

Vano
05.05.2018
06:03:43
ну тогда так:
- делаешь пагинацию, чем меньше страница - тем лучше
- вытягиваешь чанк задач в оперативку
- перебором клонируешь каждую задачу до X повторов, вставляя обратно в коллекцию
- сортируешь по дате
- выводишь
профит
смысл - не клонировать их в базе, там должна быть одна запись
просто при выборке добавляешь виртуальные повторы
так как клон от оригинала отличается только датой следующего запуска, можно даже __clone у модели переделать
работа с datetime - быстрая штука
по факту, ты можешь в оперативке хоть все задачи клонировать
главное, чтоб оперативки хватало, ибо ООП - тяжелая хрень в плане памяти

Alexey
05.05.2018
06:24:59
uksort() ?
нужно перебрать модели в датапровайдере и добавить туда клоны с сортировкой, верно?

Vano
05.05.2018
06:45:27
точно

Ad.x ??
05.05.2018
07:59:33
позволяет как периодические записи хранить, так и одиночные
имею в виду` */30 * * * *` эту херь

Konstantin
05.05.2018
09:16:37
mod_fcgid: HTTP request length 138140 (so far) exceeds MaxRequestLen (131072)
как это исправить?

Google

Konstantin
05.05.2018
09:17:11
когда был ISP небыло проблем теперь VEstaCP появилась проблема )))

Ad.x ??
05.05.2018
09:20:46

Konstantin
05.05.2018
09:26:59
?
у меня и так стресс уже, сейчас попробую типа такого запихнуть в цги файл
export PHP_FCGI_MAX_REQUEST_LEN=604857600
Элфиндер оказалось рубит по 10 метров файл и заливает на хост))? прикольно, я то думал ограничения пхп на выгрузку работают а неет))

Vano
05.05.2018
10:57:21

Ad.x ??
05.05.2018
10:58:42
правда вычислять придется для каждого дня, если например будет каленьдарь на месяц открыт

Vano
05.05.2018
11:02:18
вот в том и дело, что все равно нужно считать каждое "срабатывание"
а уже как считать - зависит от формата хранения
можно крон синтаксис, можно какие-то циферные интервалы

Ad.x ??
05.05.2018
11:05:52
ну у нас есть конечная дата (когда 1 срабатываение), и периодическое срабатываение. как это объеденить в 1 формат?
есть предложения? )
имхо формат крона решает проблему

Vano
05.05.2018
11:07:19
повторюсь: решал схожую задачу, но чуть с другими условием
у меня "повторять каждые n x с момента постановки", где n - int, x - минуты, часы, дни, блабла

Ad.x ??
05.05.2018
11:08:24

Vano
05.05.2018
11:08:32
одна
зачем две?

Ad.x ??
05.05.2018
11:08:38
1 старт, вторая период
а как ты период сделаешь в таком случае?

Google

Vano
05.05.2018
11:09:21
created_at, а дальше Carbon и добавляешь нужный интервал, сохраняя туда же в базу

Ad.x ??
05.05.2018
11:10:19
как-то сложна
created_at может текущий быть, а период начинаться завтра в 2 часа и каждые 2 часа

Vano
05.05.2018
11:12:23
можно start_at сделать для задачи, и дальше к этой дате интервал добавлять
все же от постановки задачи танцует
у меня - с момента создания

♿️
05.05.2018
12:16:15
На кроне. По утрам. Ежедневно проверяем, нет ли назначенных цикличных событий на текущую дату. Если есть - добавляем в БД копию цикличной.
Как-то так. И выборка не будет всю базу ворошить. Для цикличных отдельная таблица.

Vano
05.05.2018
12:19:16
нахрена базу засорять? это раз
два: в той задаче надо было показать и будущие задачи, которые еще не настали

Asm
05.05.2018
12:47:06
PHP. Рецепты программирования (2015)
Авторы: Дэвид Скляр, Адам Трахтенберг
#php #books
О книге Дэвида Скляра, пожалуй, должен знать (а ещё лучше — прочитать) каждый начинающий или опытный веб-разработчик. В этом объёмном руководстве вы найдёте множество профессиональных прикладных решений для самых распространённых задач в веб-разработке. В книге разбираются не только основы языка PHP и его объектно-ориентированные возможности, но даны также готовые рецепты по работе с аутентификацией пользователей, с сессиями, графическими изображениями, функциями PHP, исключениями и тестами.
В книге рассматриваются следующие темы:
➕ основы веб-программирования;
➕ формы;
➕ базы данных;
➕ сеансы и долгосрочное хранение данных;
➕ обработка ошибок;
➕ регулярные выражения;
➕ написание тестов и многое другое.
Недостатки:
➖ версия языка PHP — 5.4.


Mark
05.05.2018
14:18:11
Хм, а как грамотно сделать: нужно в Assets некоторые скрипты вынести в head, но некоторые так и должны быть в перед закрывающим тэгом body, т.е. public $jsOptions = ['position' => \yii\web\View::POS_HEAD];, по-идеи, не поможет?

Evgen
05.05.2018
14:23:24
Нет. Проще разделить на 2 asset ... Ну или делать проверку в public init() и там позицию задавать

Mark
05.05.2018
14:25:01

Ad.x ??
05.05.2018
14:59:36
можно вообще ассетсами не пользоваться. ибо нах они? цепляем 1 собраный и минифицированный файл и ебись оно конем =)

Vano
05.05.2018
15:00:30
можно вообще не генерировать фронт со стороны сервера :)
и пошло оно все к чертовой матере

Evgen
05.05.2018
15:00:57
Радикалы

Vano
05.05.2018
15:01:43
прости, ради чего?

Ad.x ??
05.05.2018
15:21:03
а так да, нах эта генерация хтмл сраная

Google

Vano
05.05.2018
15:22:20
фронтяка сейчас не такая и сложная, можно и в одну будку

Ad.x ??
05.05.2018
15:22:51
@shindakioku расскажи нам про микросервисы, ангуляр и дарт

Vano
05.05.2018
15:22:55
я с командами работаю, продуктивность выше

Ad.x ??
05.05.2018
15:23:53

Ghost
05.05.2018
16:08:51
Tefrin или Tervin что лучше по звучанию

Vano
05.05.2018
16:11:31
для чего?

Evgen
05.05.2018
16:41:20
Какая разница для чего)) главное чтоб благозвучно было
Тервин лучше

Katulos
05.05.2018
16:47:31
Тервер
Вызовет дрожь у причастных лиц

Санжар
05.05.2018
16:48:00
Tevin

Yura
05.05.2018
16:48:18

Ghost
05.05.2018
16:48:29
Ы
Тэрвин 60%
Набирает голосов

Katulos
05.05.2018
16:49:57
Натощак

Максим
05.05.2018
16:50:25

Katulos
05.05.2018
16:50:40
Дык