@spbpython

Страница 351 из 785
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 есть такая штука, но ничего не могу сказать про недостатки - мало опыта работы с этой библиотекой.

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

Eugene
03.04.2017
19:04:26
ну и в uWSGI есть таски
Это вот это? https://pypi.python.org/pypi/uwsgi-tasks

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

Serge
03.04.2017
19:06:45
То есть, по любому нужен отдельный процесс, где это будет обрабатываться. Есть что-то попроще Celery, чобы долго не возиться с настройкой? Или там всё просто?
ну, вот прямо из коробки без выпендрежа селери вполне просто. выбрал правильный concurrency и запустил в один процесс вместе с брокером. не особо хорошо, но заработает сразу, дальше аккуратно можно брокер отделить и скалить воркеры отдельно

Danil
03.04.2017
19:06:54
Это вот это? https://pypi.python.org/pypi/uwsgi-tasks
http://uwsgi-docs.readthedocs.io/en/latest/Spooler.html

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
Но большинство задач изи, хотя там и нет планировщика толком

Угу

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

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

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

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

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

Denis
03.04.2017
20:40:17
Я бы логировал в stderr и перенаправлял в файл
Лучше уж заюзать питонячую подсистему логирования тогда, хотя думаю что у uwsgi оно так то и работает, что логично

Точнее, речь идёт о логах питонячих, скорее всего по INFO

И хочется их видеть, так же?

Eugene
03.04.2017
20:41:40
https://12factor.net вот короче
Это, конечно, круто, но надо читать вдумчиво и долго. Это я потом почитаю. :)

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
Да, у меня чисто прототип, который "показать и выкинуть/переписать"

Страница 351 из 785