@phpclubru

Страница 688 из 956
Feodor
24.10.2018
05:55:26
Предполагая, что ты какой-то невезуий парень, кинутый на дерьмовый проект, могу предположить что ищешь ты это https://dev.mysql.com/doc/refman/8.0/en/string-comparison-functions.html

Вариант такой себе. По производительности. Но времени у тебя, конечно же нет и нормализацией заниматься тебе никто не даст.

Йосеф
24.10.2018
08:50:31
Всем общий привет!

Господа программисты, имею весьма деликатный вопрос, по поводу фрэма YII2. Чтение и обращение к таблицам БД там происходит из коробки, или нет?

Google
Йосеф
24.10.2018
08:52:01
На официальном сайте пока не нашел соответствующей инфы

Feodor
24.10.2018
08:52:59
Да, с минимальной настройкой.

Задать бд, задать модели для таблиц.

https://www.yiiframework.com/doc/guide/2.0/en/start-databases

Йосеф
24.10.2018
08:54:04
Вот, пруф пришел! Чудно, мерси-мерси!

Kirill
24.10.2018
08:57:15
То есть совершенно не важно на чем многопоточность реализовывать? А то некоторые имеют мнение, что курл для многопоточных задач не подходит, мол глючный, а сокеты лучше
Не юзай многопоточный curl. Сделай простую очередь на листах redis’овских и чтобы воркеры дергали по одному и выполняли. А что касается висящих TCP соединений, то возможно ты просто уперся в лимиты ОС по кол-ву открытых коннектов и они ждут своей очереди (из-за этого же проблемы с аплинком) - это легко фиксится.

dypa
24.10.2018
09:26:42
редис и очереди отличное решение - мир сошел с ума

Kirill
24.10.2018
09:45:54
Обоснуй
Могу ошибаться, но в случае мульти-курл если хотя бы один из урлов «подвиснет», то все остальные ответы будут ждать его до тех пор, пока он не отвалится по таймауту. И только после этого можно будет закрыть соотв. хэндлеры и приступить к обработке контента. Т.е. быстрее будет обрабатывать по одному урлу параллельно воркерами.

редис и очереди отличное решение - мир сошел с ума
Никто не говорил что редис отлично подходит для очередей. Но быстро настроить и сделать просто чтобы работало - без проблем. А топик-стартеру именно это и нужно. Хотя у него урлы в базе - уже считай готовая «очередь». Хотя если более функциональная и при этом простая очередь нужна на одном серваке, то я взял бы beanstalkd.

Dmitry
24.10.2018
09:50:02
Не, остальные получишь и можешь новых докинуть. В этом и прелесть мультиплексирования, пока один спит, другие работают

Kirill
24.10.2018
09:51:50
А как это в коде выглядит? Я не видел, чтобы какие-то колбэки можно было передавать на обработку? Или все же можно?

Я отталкиваюсь от примеров на php.net - там последовательная простыня кода просто. Возможно не знаю каких-то нюансов работы с multicurl.

Google
Kirill
24.10.2018
09:54:13
Я просто отталкиваюсь от того, что когда-то была похожая задача и от мультикурла в пользу воркеров отказался именно по этой причине.

Dmitry
24.10.2018
09:59:23
На пхп в примерах примитив, конечно. Как-то так https://github.com/miksir/multicurlcrawler/blob/master/CurlCollection.php#L96 Хотя сейчас я, конечно, брал бы что-то готовое асинхронное работающее с select/epoll

Kirill
24.10.2018
10:15:23
Посмотрел, понял. Спасибо. Главное чтобы обработка контента не занимала много времени (либо происходила асинхронно) тк в противном случае read-loop все же будет блокироваться. Еще раз спасибо!

dypa
24.10.2018
10:30:07
Никто не говорил что редис отлично подходит для очередей. Но быстро настроить и сделать просто чтобы работало - без проблем. А топик-стартеру именно это и нужно. Хотя у него урлы в базе - уже считай готовая «очередь». Хотя если более функциональная и при этом простая очередь нужна на одном серваке, то я взял бы beanstalkd.
не нужно добавлять редис для очередей, потому что: * очереди отлично реализуются в РСУБД которая уже существует * есть проекты которые специализируются на очередях (rabbitMQ, 0mq, ...) * БЫСТРО и ПРОСТО в данном случае иллюзия, требуется время на обучение, введение в эксплатацию, мониторинг и тд и тп. не хорошо давать "вредные советы", потому что кто-то не понимая всех нюансов начнет по ним реально делать.

Dmitry
24.10.2018
10:35:34
Точно

Хотя в современной “школе” именно этот термин почти не слышу, да.

Gleb
24.10.2018
10:37:40
Хотя в современной “школе” именно этот термин почти не слышу, да.
Просто этот термин больше относится к физическому уплотнению канала. Несущая и поднесущие.

Dmitry
24.10.2018
10:38:53
Ну тут идея та же, ты как бы один процесс “канал” делишь на насколько коннектов “потоков” методом временного мультиплексирования

Gleb
24.10.2018
10:42:25
не, это теримн универсальный
Ну у меня инженерное образование и я изучал и сталкивался больше с частотно-временным(сотовая связь)

Dmitry
24.10.2018
10:42:56
проф деформация это нормально, хехе

Pavel
24.10.2018
10:48:05
Это блокирующая операция?

dypa
24.10.2018
10:50:20
Это блокирующая операция?
FOR UPDATE FOR UPDATE causes the rows retrieved by the SELECT statement to be locked as though for update. This prevents them from being locked, modified or deleted by other transactions until the current transaction ends. That is, other transactions that attempt UPDATE, DELETE, SELECT FOR UPDATE, SELECT FOR NO KEY UPDATE, SELECT FOR SHARE or SELECT FOR KEY SHARE of these rows will be blocked until the current transaction ends; conversely, SELECT FOR UPDATE will wait for a concurrent transaction that has run any of those commands on the same row, and will then lock and return the updated row (or no row, if the row was deleted). Within a REPEATABLE READ or SERIALIZABLE transaction, however, an error will be thrown if a row to be locked has changed since the transaction started.

это из доки mysql, уверен что в pg тоже самое

Pavel
24.10.2018
10:51:18
Не, я имею в виду если в таблице нет записей то что произойдет? селект сразу вернет пустоту?

Google
Pavel
24.10.2018
10:51:47
Насколько я знаю да, но так нельзя делать очереди, это очень плохо

Kirill
24.10.2018
10:53:09
Если юзать базу для очереди, то ее в любом случае придется постоянно дергать на предмет наличия новых тасков.

Редис точно также

Pavel
24.10.2018
10:53:57
Нет, редис кокрастыке работает именно так как нужно для очереди, он блокирует селект пока в списке не появятся новые записи.

Это очень эффективно по ресурсам, и мгновенно доставляет таску до воркера

Kirill
24.10.2018
10:55:14
Как это сделать?

Pavel
24.10.2018
10:57:16
А когда он просыпается? Каждую секунду?

Dmitry
24.10.2018
10:59:43
очередь без кролика как обед без еды ?

dypa
24.10.2018
11:00:34
очередь без кролика как обед без еды ?
не люблю крольчатину, но rabbitmq хорош

Pavel
24.10.2018
11:00:35
как укажешь
Не не это все кривые костыли. Я хочу чтобы как только задача упадет в хранилище, она в ту же миллисекунду была отправлена в воркер. Никаких засыпаний.

редис так может, postgres нет

Kirill
24.10.2018
11:01:35
Нет, редис кокрастыке работает именно так как нужно для очереди, он блокирует селект пока в списке не появятся новые записи.
Есть 2 варианта имхо. Первый - воркеры постоянно дрочат какой-нибудь lpop или чтл-то более сложное в транзакции. Второй - воркеры подписаны на pub/sub, но это полная шляпа, тк надо обыгрывать неполучение pub’а.

редис так может, postgres нет
Напиши плиз как. Я просто не в курсе - интересно.

Pavel
24.10.2018
11:03:43
У меня этот уровень где-то в самом начале, ходить в базу каждые полсекунды и спрашивать не пришло ли задач это отвратительно

Но неужели умельцы не написали для потсгреса блокирующие очереди с транзакциями? Думаю все же есть

Google
Pavel
24.10.2018
11:05:02
С другой стороны, те кому нужны блокирующие вызовы, в итоге все равно уйдет на кролика т.к. там куча других нужных фич

Dmitry
24.10.2018
11:07:06
У постгреса есть нотификации

dypa
24.10.2018
11:07:53
Pavel
24.10.2018
11:08:58
ой да ладно редис поднять это 5 минут

И туда же можно сложить кеш и все такое :)

Dmitry
24.10.2018
11:09:25
кролика тоже ?

Kirill
24.10.2018
11:09:29
https://redis.io/commands/blpop
Спасибо! Видимо я застрял где-то в функционале первых версий.

Admin
ERROR: S client not available

Pavel
24.10.2018
11:09:47
кролика тоже ?
ну ему там роутинг надо настраивать

а вот про subscription в потсгресе я читал, все хотел попробовать но так и забил

Но вроде это тоже не подходит для очередй

Так как если подписку никто не слушает, то сообщение пропадет навсегда.

Dmitry
24.10.2018
11:11:33
Так сообщения в таблицу а нотификации на новые инсерты

с роутингом в кролике все примитивно, особо если для примитивных целей там ничего особо настраивать не нужно

Gleb
24.10.2018
11:26:49
История не по теме) Стою я значит в Мфц(гос фигня документы оформляющая почти все которые есть в РФ). И у операционистов стоит mac2017 21.5. А у администратора 27. Притом наклеек номерок ревизионный с цифрами порядка 1500+

dypa
24.10.2018
11:27:11
ой да ладно редис поднять это 5 минут
а потом у тебя в проекте: mysql, postgresql, mongodb, redis, rabbitmq, elasticsearch, casandra, clickhouse, vetrtica... потом "подниматель" увольняется минут через 15 и пипец

Pavel
24.10.2018
11:47:43
Слушайте, а чем отличается менеджер от сервиса?

Feodor
24.10.2018
11:49:45
насколько я слышал там винда. а так - хорошо, что люди работают в хороших условиях.
Рассказывал приятель про эти условия. Маки с виндой ибо распилы, зарплата админа 20к.

Kirill
24.10.2018
11:56:19
Слушайте, а чем отличается менеджер от сервиса?
Диспетчер и исполнитель? Или в каком контексте?

Google
Pavel
24.10.2018
11:57:15
Manager vs service

В контексте сервисов вставляемых в контейнер

Terminator
25.10.2018
04:42:39
Антон будет жить. Поприветствуем!

oleg
25.10.2018
05:24:21
Ребят, каким образом работают хостинги ? Что у них такого особеного, что я просто так не могу запустить у себя сервак и выложить сайт в интернет ?

Feodor
25.10.2018
05:26:22
Огонь вопрос.

Ну в принципе можешь.

Eugene
25.10.2018
05:26:56
Если айпишник выделенный есть

Feodor
25.10.2018
05:27:09
Если есть статический айпи.

Но!

Работоспособность 24/7.

Отказоустойчивость(RAID хотя бы)

Топология(у тебя один линк, у датацентра 100500)

oleg
25.10.2018
05:28:15
т.е. мне у провайдера выпросить ип и могу через свой сервак грузить сайты ?

Feodor
25.10.2018
05:28:45
Ну да. Так все петпроджекты и серверы личные хостят.

Eugene
25.10.2018
05:28:53
Грузи:)

Feodor
25.10.2018
05:29:05
У друга так сквид и файлопомойка висит.

oleg
25.10.2018
05:29:24
Сенкс фор ол :)

Feodor
25.10.2018
05:29:47
А зачем личное-то?

oleg
25.10.2018
05:30:20
интересно было, за что платят деньги

Страница 688 из 956