
Софи
02.03.2017
23:27:09

Nikolay
02.03.2017
23:27:47
да кончился уже холивар)

Google

Nikolay
02.03.2017
23:28:08
но aiohttp
в некоторых случаях не нужен celery - можно просто засунуть таску в эвентлуп или запустить тут же в воркере рядом

Софи
02.03.2017
23:29:45

Nikolay
02.03.2017
23:30:54

Софи
02.03.2017
23:39: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

Nikolay
02.03.2017
23:49:21
nginx там не нужен, tornado по сути - во многом подобие nginx, только на питоне
смотри, говоря глобально, в чем суть асинхронных программ
у тебя есть программа и есть внешний мир
в простом случае ты из внешнего мира что-то забираешь, пропускаешь через код, выдаешь вывод
но что если ты хочешь в коде реагировать на определенные события из внешнего мира?
вот асинхронность как раз дает тебе такую возможность - ты подключаешься к событиям в системе, и “проматываешь” программу до следующего ожидания события
то есть, по сути, весь код становится event-driven

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

Nikolay
02.03.2017
23:52:49

Софи
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

Nikolay
02.03.2017
23:54:04
а торнадо запускает epoll на сокете, который может асинхронно сотню тысяч коннектов держать
более того, wsgi и асинхронность дружат так себе

Софи
02.03.2017
23:55:44

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

Софи
02.03.2017
23:56:32

Nikolay
02.03.2017
23:57:06

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

Софи
02.03.2017
23:57:40

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

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

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

Admin
ERROR: S client not available

Nikolay
03.03.2017
00:02:42
но его потом проксируют?
кого проксируют? проксирует nginx, он как раз использует WSGI, чтобы запрос прокинуть через uwsgi в wsgi-приложение питоновское

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

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

Nikolay
03.03.2017
00:06:06
wsgi - это протокол
если из баша - всегда есть pwd
если из питона - тогда можно использовать os.path.dirname(__file__)

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

Nikolay
03.03.2017
00:12:02
можно вместо uwsgi взять gunicorn

Eugene
03.03.2017
00:12:11

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

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

Eugene
03.03.2017
00:13:29

Nikolay
03.03.2017
00:13:47

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

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

Nikolay
03.03.2017
00:15:00

Софи
03.03.2017
00:15:23

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