1) я собираю образ и создаю папки в storage
2) я запускаю контейнер на этом образе и линкую volume на папку storage
3) volume у меня пустой, все мои папки на этапе сборки пропадают..., тк перезатираются данными пустого voluma
4) при любом запуске чтого-то ларавельского имею ошибку невозможности записать в кеш)))
ky0 , да, пишут только fpm/cli контейнеры, nginx только читает "прлинкованные", а на самом деле нет, файлы из storage, про тег понимаю, пока чисто тестирую для себя, но видел что в пайплайне можно воткнуть переменную равную id пайплайна или хешу MR и вперед.
А что скажите по инициализации? ларавел требует наличие некоторых папок, которые у меня в volume (а volume-то пустой изначально), те мне где-то единаразово перед сборкой надо воткнуть что-то такое внутри volume
чтобы они примонтировались и там уже была какая-то структура и ларавел не ругался что кеш не может создать, так как папки нет.
чот такое надо сделать да?
Александр Панков, у меня тысячи url парсятся и они уникальны, в некоторых появляется ошибка и именно при ошибке мне нужно делать какие-то манипуляции с запросом
maksam07, да, хороший вариант, но в этом и суть моего вопроса, как добавить… вот случилась ошибка, вот я в мидлваре, но как мне достучаться до реквеста, заменить его и пойти дальше.. смотрю в код и не понимаю, газл возвращает в мидлваре либо булево либо цифру (задержку)
Постгрес был выбран для реализации задачи потому что умеет возвращать вставленные только что записи через returning id, что не умеет MySQL, а я эти идишники в редис удобно сразу же пишу. Это стало решающий фактором, те идеально ложилось на весь придуманный процесс парсинга
Сергей Соловьев , спасибо, но я все еще не догоняю. Вот конкретно мой пример
есть таблица с колонками id, root, key, value
на колонке root уникальный индекс
я вставляю туда строки, 1000 строк за раз при этом многократно (порядка 1млн записей в сумме), строки вставляются многоим клиентами и вставки могут содержать одинаковый root
такой запрос у меня
inset into .. (root, key, value) values (1,'a','b'), (2,'c','d').... on conflict root set update key .. value
те у меня прям куча инсертов
и в моей сиутации нет-нет да и случается дедлок ... while inseting index ....
каким образом мне тут помогает сортировка и почему вообще дедлок? я не мойму.
получается какой-то из клиентов генерит инсерт, случается конфлик индекса, срабатывает set update
и в это же время у другого клиента так же случается конфликт этого же root и срабатывает set update.
те 2 запроса обвноляют одну и то же строку.. но где делок, почему в порядке очереди это не срабаытывает?
где тут взаимная блокировка я не могу понять... отсотирую я данные по root в инсерте, а дальше-то как это мне помогает? помогите разжевать пожалуйста.
Дмитрий, ну вообще да, я думал они по разному на диск пишут, хранят и достают (по крайне мере колоночные и строчные СУБД), затем они и придуманы были, для разных задач, странно что это не так..
1) я собираю образ и создаю папки в storage
2) я запускаю контейнер на этом образе и линкую volume на папку storage
3) volume у меня пустой, все мои папки на этапе сборки пропадают..., тк перезатираются данными пустого voluma
4) при любом запуске чтого-то ларавельского имею ошибку невозможности записать в кеш)))
нагуглил что содают сервис для этого
типа в ci в начале его дергают и все, тогда при первом запуске должно бытть ОК, с учетом что разрулю с правами и юзерами.
ps:как же все гладко и понятно без докера, и сколько же костылей с ним)))