
Dmitry
03.04.2017
13:09:20
можешь через впнку. У них на россию серваки не выдерживают нагрузки

Sergey
03.04.2017
13:15:26
https://www.facebook.com/safetycheck/saint-petersburg-russia-explosion-apr03-2017/
Вдруг кто фейсбуком пользуется

Eugene
03.04.2017
13:15:37
Проще всего медузу читать
Самая актуальная инфа
https://meduza.io/live/2017/04/03/vzryv-v-peterburgskom-metro-hronika

Michael
03.04.2017
14:07:39
Парни есть небольшой нубский вопрос по системд...
к примеру у меня есть
test1.service
test2.service
test.all.service
test.all.service - может ли этот сервис стартавать и стопать 1 и 2, как это делается?
Или всетаки так не делать нельзя и нужно делаеть через таргет?

Google

GNU/Docker
03.04.2017
14:08:31
Типа реквайред?
Что ты хочешь сделать?

Michael
03.04.2017
14:08:41
тип того

Dmitry
03.04.2017
14:09:03
через таргет

Michael
03.04.2017
14:09:15
system start test.all.service
> start test1, start test2
аналогично стоп

Dmitry
03.04.2017
14:09:29
таргет как раз для группировки юнитов используется

GNU/Docker
03.04.2017
14:10:25
Есть директива partOf

Dmitry
03.04.2017
14:10:29
и потом просто systemctl start

GNU/Docker
03.04.2017
14:10:29
посмотри по ней доку
кажется это то что тебе надо

Michael
03.04.2017
14:10:46
просто с таргетом есть некоторые непонятки, мне к примеру надо будет потом стартавать не весь таргет а определенные сервисы на другую групировку
Я правильно понимаю что partOf может несколько таргетов содержать?

GNU/Docker
03.04.2017
14:44:06
я не знаю

Google

GNU/Docker
03.04.2017
14:44:17
я с системд колупаюсь пока со стороны сигруп.
Юниты мы после миграции будем писать)

Michael
03.04.2017
14:51:47
Ну вроде можно просто непонятно как он разруливает как-то =(

Serge
03.04.2017
15:07:46
https://meduza.io/live/2017/04/03/vzryv-v-peterburgskom-metro-hronika

Sasha
03.04.2017
17:06:09
все живи, здоровы?

Serge
03.04.2017
17:34:15
Инфы, что кто-то из наших там был, нет


I
03.04.2017
17:52:50
Первый список раненных и погибших
Раненные:
Облонская А., 1997 г.р.
Постнов С., 1976 г.р.
Золнов М., 58 лет
Мелибоев Н.
Ульянов Д.
Александра З., 15 лет.
Захарченко Владимир Константинович, 20 лет
Семенов Максим Сергеевич, 20 лет
Власов Александр Валерьевич, 18 лет
Барацевич Игорь Алексеевич, 21 год
Бугрова Ирина Леонидовна, 46 лет
Петрухина Светлана Николаевна, 62 года
Малыха Нина Ивановна, 64 года
Бугрова Анастасия Витальевна, 19 лет
Слесаренко Анжелика Геннадьевна, 41 год
Куварин Константин Дмитриевич, 21 год
Велиев Заур, 28 лет
Эвелина, примерно 24 года
Динара Тамаидаровна А. 1996 года рождения – скончалась в больнице
Шурикджон Хокшакакбаров
Неизвестная № 509, примерно 70 лет
Неизвестная № 510, примерно 35 лет
Неизвестная № 512, примерно 20 лет
и вот ещё
В 26-ю больницу госпитализированы Вера З. 59 лет (приемный покой), Юрий Ш. 53 года (реанимация),Тереза Ч. 18 лет (приемный покой), Юрий Ш. 53 года (приемный покой), Светлана Г 44 года ( ЛОР-отделение), Руслан Т. 24 года (ЛОР-отделение).
Заур Велиев, 28 лет
Неизвестная № 509, примерно 70 лет
Неизвестная № 510, примерно 35 лет
Неизвестная № 511 (Эвелина), примерно 24 года
Неизвестная № 512, примерно 20 лет
Ирина Бугрова, 46 лет
Светлана Петрухина, 62 года
Нина Малыха, 64 года
Анастасия Бугрова, 19 лет
Анжелика Слесаренко, 41 год
Константин Куварин, 21 год
Владимир Захарченко, 20 лет
Максим Семёнов, 20 лет
Александр Власов, 18 лет
Игорь Баранцевич, 21 год
Шурикджон Хокшакакбаров


Dmitry
03.04.2017
17:55:26
>> MDK
=/

I
03.04.2017
17:56:51
Ну извините, больше нигде не было

Eugene
03.04.2017
18:57:20
Товрищи, питонисты, умудрённые опытом веб-разработки, хочу спрсить у вас совета, как правильно делать. :)
А именно, допустим, есть Flask-приложение, на заданный URL приходит POST запрос с json-данными. Надо сделать что-то тяжёлое и долгое с учётом этих данных, а потом когда-нибудь отправить результаты на некоторый URL. Как это делается правильно, чтобы ничего не блокировалось? Придётся использовать что-то вроде Celery или может можно как-то иначе?

Dmitry
03.04.2017
18:57:39
асинк, да
повесил в очередь или в луп, а сам сразу отдал какой-то ответ клиенту
когда отпроцессилось, прислал результаты
есть несколько вариантов как такое реализовать

Eugene
03.04.2017
18:59:22
То есть, по любому нужен отдельный процесс, где это будет обрабатываться. Есть что-то попроще Celery, чобы долго не возиться с настройкой? Или там всё просто?

Chikiro
03.04.2017
19:02:03
http://python-rq.org есть такая штука, но ничего не могу сказать про недостатки - мало опыта работы с этой библиотекой.

Danil
03.04.2017
19:02:57

Eugene
03.04.2017
19:03:11
Я его как раз использую

Алексей
03.04.2017
19:03:19

Eugene
03.04.2017
19:04:26

Google

Eugene
03.04.2017
19:05:39

Vitali K.
03.04.2017
19:06:31
python-rq +1

Serge
03.04.2017
19:06:45

Danil
03.04.2017
19:06:54

Eugene
03.04.2017
19:07:41
>распределенная серверная часть
Пока не планируется ничего такого, приложение просто должно уметь отложенно отвечать на когда-то пришедший URL. Причем даже не обязательно параллельно всё считать, обычной очереди хватит. Кому надо может подождать ответа с данными.

Dmitry
03.04.2017
19:09:01
https://twitter.com/gitlab/status/848969606731415553

Eugene
03.04.2017
19:09:20
Причем я бы может и сделал тупо в лоб с полной блокировкой, но тот, кто шлёт в моё приложение данные, хочет получить ответ в течение некоторого таймаута и если не получает, то будет ошибка. Поэтому мне и надо отложенно потом слать обработанные результаты.

Dmitry
03.04.2017
19:09:24
надеюсь, мы ещё не закончили с шутками про GitLab и DB

Eugene
03.04.2017
19:09:29
Да, спасибо! Попробую
ну, вот прямо из коробки без выпендрежа селери вполне просто. выбрал правильный concurrency и запустил в один процесс вместе с брокером. не особо хорошо, но заработает сразу, дальше аккуратно можно брокер отделить и скалить воркеры отдельно
Я когда-то развёртывал django приложение, где использовался celery. Помню пришлось запускать и управлять всем этим из под supervisor. Сейчас, наверное, это можно и из под systemd рулить, но сейчас уже прсото нет времени всё это конфигурировать, надо срочно некую бабалайку запилить. А когда всё это ещё и не твоя предметная область, так вообще тяжко. Хорошо хоть документацию python-сообщество генерирует неплохую для своих проектов. И чатик есть где могут помочь, подсказать! :)

Serge
03.04.2017
20:21:02
docker-compose жи
всё из одного и того же контейнера разными сервисами и всё

Denis
03.04.2017
20:21:39
Celery не стоит, закапается, сначала пусть с флаской и rq заведёт )

Serge
03.04.2017
20:22:37
Только rq - это шаг влево-вправо, надо самому кодить
Но я не против
Тот же рецепт деплоя все равно работает

Denis
03.04.2017
20:23:02
Но большинство задач изи, хотя там и нет планировщика толком
Угу

Roman
03.04.2017
20:28:59

Eugene
03.04.2017
20:29:23
А можно запустить rq worker из того же systemd сервиса, из которого я запускаю uwsgi сервер?
Прописал ещё один ExecStart, но ничего не происходит, по видимому моя задача не отрабатывает. Логи нигде не нашёл. Пробую руками добавить вывод в логфайл, но в него ничего не пишется почему-то.

Google

Eugene
03.04.2017
20:30:03
а клиент готов ждать?
Да, это как раз не проблема, готов. Просто без отложенной отправки данных не уложиться в то время, которое требуется для ответа.

Denis
03.04.2017
20:31:33

Eugene
03.04.2017
20:31:51
Да на самом деле не нужен, нужно как проще
Как вообще это делается обычно?

Admin
ERROR: S client not available

Eugene
03.04.2017
20:32:38
Если без докера :)

Denis
03.04.2017
20:32:44
Отдельно )
Рассчитывается что воркер вообще может быть на другой машине
Так что конфигурацию декомпозируют на приложение и воркер для обработки задач

Eugene
03.04.2017
20:33:35
Просто, мне показалось удобным запускать его из того же сервиса, так как там уже настроены все переменные окружения

Denis
03.04.2017
20:33:42
А с селения так ещё и хартбит сервис :D

Eugene
03.04.2017
20:34:22
Ясно, попробую создать отдельный сервис для запуска rq worker

Denis
03.04.2017
20:34:49
Но вообще фиг знает как системди сможет два процесса заспаунить и ими управлять… но может быть может )

Eugene
03.04.2017
20:35:50
А что с логами может быть? Хочу везде понапихать вывод в лог, но что-то нет вывода.
Делаю как тут написано:
http://flask.pocoo.org/docs/0.12/errorhandling/#logging-to-a-file
Лог файл создаётся, но сообщения туда не сваливаются.

Vitali K.
03.04.2017
20:36:06
Я обычно стартую supervisor, а через него уже другие сервисы. uwsgi, rq, пр

Eugene
03.04.2017
20:36:43
Питон 3.5, супервизор вроде не работает с ним. Есть circus, но я его не пробовал.

Denis
03.04.2017
20:37:15
Глянь может какой flask-rq, что такое может есть что интегрирует конфирмант
*конфиги

Google

Eugene
03.04.2017
20:37:51
Логи вообще ни от куда не приходят. Исключения падают в лог, который порождает uwsgi

Vitali K.
03.04.2017
20:38:23

Eugene
03.04.2017
20:38:49

Vitali K.
03.04.2017
20:38:56
Я бы логировал в stderr и перенаправлял в файл

Denis
03.04.2017
20:39:35

Vitali K.
03.04.2017
20:39:46
https://12factor.net вот короче

Denis
03.04.2017
20:40:17
Точнее, речь идёт о логах питонячих, скорее всего по INFO
И хочется их видеть, так же?

Eugene
03.04.2017
20:41:40

Vitali K.
03.04.2017
20:42:03

Eugene
03.04.2017
20:42:21

Denis
03.04.2017
20:42:43

Eugene
03.04.2017
20:43:10
Да, у меня чисто прототип, который "показать и выкинуть/переписать"