@ru_python

Страница 2384 из 9768
Nikolay
02.03.2017
23:27:47
да кончился уже холивар)

если не celery, то что?
я сейчас покажусь неоригинальным

Google
Nikolay
02.03.2017
23:28:08
но aiohttp

в некоторых случаях не нужен celery - можно просто засунуть таску в эвентлуп или запустить тут же в воркере рядом

Nikolay
02.03.2017
23:30:54
простенькая самописка?
ну да, примитивный маленький сервис под не сильно большой нагрузкой

Nikolay
02.03.2017
23:41:24
Софи
02.03.2017
23:46:17
вроде бы звучит все просто. много запросов обрабатывает параллельно и быстро. сделали дело, куда-то сложили или дали задание, отправили ответ.

но почему-то везде слышу асихронность асихронность асихронность

Nikolay
02.03.2017
23:46:58
но это не только для вебсервисов

ты можешь с чем угодно асинхронно взаимодействовать - с девайсом через порт, например

Google
Nikolay
02.03.2017
23:47:46
или с процессом через потоки

Софи
02.03.2017
23:48:03
еще интересный вопрос: tornado - это веб сервер полноценный/фреймворк/или что можно поставить за nginx или что-то еще? он много задач на себя берет

Nikolay
02.03.2017
23:48:44
торнадо - скорее полноценный сервер

почитай про epoll/poll/select

Софи
02.03.2017
23:49:09
ты можешь с чем угодно асинхронно взаимодействовать - с девайсом через порт, например
ну да. может просто как-то интервьюеру мой ответ не понравился.

Nikolay
02.03.2017
23:49:11
как оно работает

Софи
02.03.2017
23:49:21
торнадо - скорее полноценный сервер
его как фронт ставят? или все-равно за nginx?

Nikolay
02.03.2017
23:49:21
nginx там не нужен, tornado по сути - во многом подобие nginx, только на питоне

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

у тебя есть программа и есть внешний мир

в простом случае ты из внешнего мира что-то забираешь, пропускаешь через код, выдаешь вывод

но что если ты хочешь в коде реагировать на определенные события из внешнего мира?

вот асинхронность как раз дает тебе такую возможность - ты подключаешься к событиям в системе, и “проматываешь” программу до следующего ожидания события

то есть, по сути, весь код становится event-driven

Софи
02.03.2017
23:52:28
о, а что спрашивал?
блин. это еще в декабре было. спрашивали то вполне стандартные вопросы. про асинхронность было. отвечала про потоки, что при асихронности нет зависимости и блокировок. что ничего не висит.

Софи
02.03.2017
23:52:55
если абстрактно, то можно дойти до всяких семафоров, процессов и диспетчеров

Nikolay
02.03.2017
23:53:27
семафоры - это иэ области параллельности, а не асинхронности, в общем случае

Google
Nikolay
02.03.2017
23:53:41
ну, хотя я тут не совсем прав

Софи
02.03.2017
23:53:45
nginx там не нужен, tornado по сути - во многом подобие nginx, только на питоне
просто боязно некоторые штуки оставлять открытыми наружу. звучит как manage.py run оставить на внешку

Nikolay
02.03.2017
23:54:04
просто боязно некоторые штуки оставлять открытыми наружу. звучит как manage.py run оставить на внешку
manage.py run запускает однотредовый сервер, который годится только для отладки

а торнадо запускает epoll на сокете, который может асинхронно сотню тысяч коннектов держать

более того, wsgi и асинхронность дружат так себе

Софи
02.03.2017
23:55:44
вот асинхронность как раз дает тебе такую возможность - ты подключаешься к событиям в системе, и “проматываешь” программу до следующего ожидания события
да. один из видов. так тот же GUI работает. и JS полностью пропитан этим (ибо веб страничка - вполне себе гуй). но в контексте веб серверов это не очень рулит. у нас есть 100500 запросов и нам моментально надо обслужить их и дать ответ. в каком-то роде событие. но тип - один.

Nikolay
02.03.2017
23:55:52
поэтому запускать его под nginx смысла особо не имеет

а на самом деле больше

даже установка соединения - это событие

Софи
02.03.2017
23:56:32
потоки к асинхронности довольно слабое отношение имеют
ну тот же nginx спаунит себе кучу процессов. чтобы обрабатывать их параллельно. а потом ось их еще раскидывает, ядер то много.

Nikolay
02.03.2017
23:57:14
это uwsgi спавнит, если его так настроить

Софи
02.03.2017
23:57:40
более того, wsgi и асинхронность дружат так себе
wsgi вроде как стандартный интерфейс для питона.

Eugene
02.03.2017
23:58:13
ngnx же вроде как правило, статику раздает : )

Софи
02.03.2017
23:58:19
апач тоже нынче форкается

Eugene
02.03.2017
23:58:22
а прочее уже веб серверы

типа uwsgi и gunicorn

Nikolay
02.03.2017
23:58:37
Google
Софи
02.03.2017
23:58:38
это uwsgi спавнит, если его так настроить
пока на сервере только php-fpm

Nikolay
02.03.2017
23:58:52
а прочее уже веб серверы
ты все в кучу смешал :)

Eugene
02.03.2017
23:58:59
да(

Nikolay
02.03.2017
23:58:59
uwsgi - не сервер

Софи
02.03.2017
23:59:42
да, но тем не менее
тогда получается, что при асихронности мы выкидываем все старье типа джанги, фласка, которые работают через wsgi и берем модные торнадо и ioaync'и? где уже свои веб сервера?

Eugene
03.03.2017
00:00:13
Блин, а как это называется?:D

Yury
03.03.2017
00:00:21
Всем привет. Дико нубский вопрос, но что-то уже туплю. Есть один скрипт, который создает файл. Необходимо сделать так, чтобы этот файл создавался рядом с исполняемым файлом, а не в директории, относительно которой запускается интерпретатор. Как это сделать на баше в одну строку?

Nikolay
03.03.2017
00:01:12
Блин, а как это называется?:D
если совсем корректно - то это просто демон, имплементирующий wsgi-протокол

Софи
03.03.2017
00:01:31
uWSGI application server container

Admin
ERROR: S client not available

Yury
03.03.2017
00:04:45
на баше? не на питоне?
На баше нужно написать маленький скрпт, который будет запускать python-скрипт так, чтобы файлы создавались в директории со скриптом, будто интерпретатор вызывается относительно этой директории.

Софи
03.03.2017
00:05:18
uwsgi общается с питоном через wsgi. создает сокет, по которому общается с nginx. и есть подозрение, что там http. а тогда это проксирование уже

Google
Nikolay
03.03.2017
00:11:25
про баш соврал немного - там все извращеннее, вот тут есть обсуждение - https://stackoverflow.com/questions/59895/getting-the-source-directory-of-a-bash-script-from-within

Софи
03.03.2017
00:11:30
там не http, там wsgi
возникает вопрос. если по обеим стороным wsgi - нафига демон uwsgi нужен?

Nikolay
03.03.2017
00:12:02
возникает вопрос. если по обеим стороным wsgi - нафига демон uwsgi нужен?
потому что сишная реализация протокола быстрее питоновской?

можно вместо uwsgi взять gunicorn

Nikolay
03.03.2017
00:12:16
будет медленнее сильно

nginx не по wsgi а по uwsgi
не надо путать

Eugene
03.03.2017
00:12:31
нафига gunicorn если uwgi шустрее и еще много чего может

Nikolay
03.03.2017
00:12:35
wsgi - протокол, uwsgi - конкретная его реализация

которая есть в виде модуля в nginx

Eugene
03.03.2017
00:12:49
посмотрите в доках

protocol = uwsgi

Nikolay
03.03.2017
00:13:18
нафига gunicorn если uwgi шустрее и еще много чего может
gunicorn, например, умеет в gevent-воркеры

Nikolay
03.03.2017
00:13:47
uwsgi тоже
разве? каким образом, интересно?

Eugene
03.03.2017
00:13:51
кроме этого еще овердофига всего. заменить celery или rq и много много другого

Nikolay
03.03.2017
00:14:38
protocol = uwsgi
хорошо, согласен в этом случае - https://uwsgi-docs.readthedocs.io/en/latest/Protocol.html

Софи
03.03.2017
00:14:40
которая есть в виде модуля в nginx
uwsgi демон - часть nginx? О_о

Eugene
03.03.2017
00:14:43
UWSGI_PROFILE=gevent pip install uwsgi и юзай в конфиге настройки для запуска с гевент

Nikolay
03.03.2017
00:15:00
uwsgi демон - часть nginx? О_о
реализация протокола на стороне nginx же тоже нужна

Софи
03.03.2017
00:15:23
реализация протокола на стороне nginx же тоже нужна
а что там на стороне nginx? тот же wsgi, только уже сишный демон общается?

Eugene
03.03.2017
00:15:27
ничего странного

Страница 2384 из 9768