
Vasia
17.01.2019
09:09:54
не бессмысленный, тк убирает попытку логина по юзернейм
мало ли какая уязвимость найдется в ссш, так хотя бы не будет известен пользователь

Tishka17
17.01.2019
09:11:42

Slam! 538
17.01.2019
09:12:12

Google

Tishka17
17.01.2019
09:12:30
Что это вообще?

Slam! 538
17.01.2019
09:12:58

Tishka17
17.01.2019
09:13:04
Код

Slam! 538
17.01.2019
09:13:13
Веб сервер

Tishka17
17.01.2019
09:13:31
Принт лучше сразу на logging заменить

Slam! 538
17.01.2019
09:13:40
Хочется

Alexey
17.01.2019
09:13:47
Как правильно написать программу, у которой есть бесконечный цикл, который должен крутиться постоянно, и при этом она должна отвечать на http запросы - API? И в случае exception в этом цикле программа должна завершаться с кодом 1.
Мои идеи:
1. Использовать async/await - пока не знаю как именно, но знаю, что с помощью асинхронной библиотеки можно делать бесконечный цикл, а само API, например, будет работать на flask - и по запросу стартовать этот цикл и завершать.
2. Использовать Threading, семафоры, итп.
3. Вообще написать два отдельных python файла, один из который будет отвечать на API запросы, а во втором будет крутиться цикл и как-то их связать?
Какой наиболее верный в этом случае способ?
Заранее благодарю за ответ.

Slam! 538
17.01.2019
09:13:48
?

Tishka17
17.01.2019
09:14:14
Как правильно написать программу, у которой есть бесконечный цикл, который должен крутиться постоянно, и при этом она должна отвечать на http запросы - API? И в случае exception в этом цикле программа должна завершаться с кодом 1.
Мои идеи:
1. Использовать async/await - пока не знаю как именно, но знаю, что с помощью асинхронной библиотеки можно делать бесконечный цикл, а само API, например, будет работать на flask - и по запросу стартовать этот цикл и завершать.
2. Использовать Threading, семафоры, итп.
3. Вообще написать два отдельных python файла, один из который будет отвечать на API запросы, а во втором будет крутиться цикл и как-то их связать?
Какой наиболее верный в этом случае способ?
Заранее благодарю за ответ.
Разделить на две программы

Yury
17.01.2019
09:14:23
1 идея кул
даже может взять aiohttp

Alex
17.01.2019
09:14:29
А зачем?
он еще вчера говорил что хочет свой веб-сервер на сокетах.

Yury
17.01.2019
09:14:40
ну или взять микрофрейм какой-то для веб сервера

Google

Yury
17.01.2019
09:14:46
аля фласк

Alexey
17.01.2019
09:14:56

Tishka17
17.01.2019
09:15:20
Любую

Slam! 538
17.01.2019
09:15:54

Alexey
17.01.2019
09:16:13
Через базу данных
Сейчас у меня redis прикручен туда, не хочу полноценную реляционную БД добавлять, а через redis схему пока не понимаю как составить.

Slam! 538
17.01.2019
09:16:25
О, редис

Tishka17
17.01.2019
09:16:36
В другую сторону - ок, любой сервер очередей. Хоть редис можно

Alexey
17.01.2019
09:17:13
Задача в том, что мне над к объекту, который в этом цикле крутится, обращаться, получать из него данные. Это selenium драйвер крутится, проверяет состояние.

Tishka17
17.01.2019
09:17:20

Vasia
17.01.2019
09:17:23
Как правильно написать программу, у которой есть бесконечный цикл, который должен крутиться постоянно, и при этом она должна отвечать на http запросы - API? И в случае exception в этом цикле программа должна завершаться с кодом 1.
Мои идеи:
1. Использовать async/await - пока не знаю как именно, но знаю, что с помощью асинхронной библиотеки можно делать бесконечный цикл, а само API, например, будет работать на flask - и по запросу стартовать этот цикл и завершать.
2. Использовать Threading, семафоры, итп.
3. Вообще написать два отдельных python файла, один из который будет отвечать на API запросы, а во втором будет крутиться цикл и как-то их связать?
Какой наиболее верный в этом случае способ?
Заранее благодарю за ответ.
я делаю что-то похожее

Slam! 538
17.01.2019
09:17:23

Tishka17
17.01.2019
09:17:33

Vasia
17.01.2019
09:17:36
у меня сериал порт и апи, которое отдает его данные

Tishka17
17.01.2019
09:17:40
А так можно дернуть по хттп

Vasia
17.01.2019
09:18:04
я сделал так: долгий луп - в отдельны поток, апи - в главный поток, асинхронно

Alexey
17.01.2019
09:18:04

Tishka17
17.01.2019
09:18:11
Что такое веб сервер - клиент пришел, получил данные, ушел.
Зачем веб сервер как-то пинговать непонятно

Google

Alexey
17.01.2019
09:18:25

Vasia
17.01.2019
09:18:28
если ты не собирашься выкидывать это в продакшен, а чисто для себя то решение вполне

Slam! 538
17.01.2019
09:18:33

Vasia
17.01.2019
09:18:40

Tishka17
17.01.2019
09:18:56
На тот, который в урле?

Alexey
17.01.2019
09:19:16

Tishka17
17.01.2019
09:19:23

Vasia
17.01.2019
09:19:27
перед запуском апи части в отдельный поток отправляю функцию, которая будет жить параллельно
если функция не цпу жрущая - то поток
если жрет цпу - то процесс
это подробно расписано в доке по асинайо

SetazeR
17.01.2019
09:20:23

Tishka17
17.01.2019
09:20:26
Не надо так
Сделай две программы

Vasia
17.01.2019
09:20:39
критикуешь - аргументируй

Tishka17
17.01.2019
09:20:44
Хоть через файлы данные передавай

Vasia
17.01.2019
09:20:50
если это для себя - две программы нафиг не упали
и делать интерфейс между двумя программами через файл - уж точно говнокод

Tishka17
17.01.2019
09:21:12
Да их тупо проще написать

Google

Vasia
17.01.2019
09:21:32
одинаково писать
просто ты все вызываешь в одном месте

Tishka17
17.01.2019
09:21:43
Файл - одно из вариантов хранилища. Может быть заменено на БД не влияя на общую архитектуру решения

Alexey
17.01.2019
09:22:08
Мог бы и через файлы и через redis передавать, вопрос не в этом, а в том, что как обратиться к объекту, который в цикле крутится, за данными?

Vasia
17.01.2019
09:22:23
при этом у нас будут общие переменные, которые уже можно шарить между кусками программы

Александр
17.01.2019
09:22:45

Admin
ERROR: S client not available

Vasia
17.01.2019
09:22:52
а то щас начнутся велосипеды типа сокета

Alexey
17.01.2019
09:22:54

Tishka17
17.01.2019
09:22:57

Vasia
17.01.2019
09:23:07
там есть нюанс с потокобезопасностью
но есть в библиотеке уже готовые решения

Tishka17
17.01.2019
09:23:42
У тебя три логические сущности:
Данные
Генератор данных
Веб приложение для раздачи
Так и раздели их
Данные лежат в файле.
Генератор их туда кладёт

Vasia
17.01.2019
09:24:17
зачем их делить физически, если они разделены логически и вполне могут вызываться из одного места

Google

Tishka17
17.01.2019
09:24:18
Веб приложение раздает

Alexey
17.01.2019
09:24:20

Vasia
17.01.2019
09:24:32
делать микросервесы на такой простой системе - самая дичайшая тупость

Tishka17
17.01.2019
09:24:56

Vasia
17.01.2019
09:25:04
они будут шарить общий ресурс, например Queue

Tishka17
17.01.2019
09:25:08
Тупо запустил два файла и норм

Vasia
17.01.2019
09:25:16
генератор пополняет ресурс, апи его раздает

Terminator
17.01.2019
09:25:24
@chtoToNapisano будет жить. Поприветствуем!

Vasia
17.01.2019
09:25:25
в порядке запуска генератор запускается первым
потом евентлуп, заполненный корутинами апи
все

Alexey
17.01.2019
09:25:57

Tishka17
17.01.2019
09:25:57
горутины тут при чем?
они перпендикулярны

Vasia
17.01.2019
09:26:06

Alexey
17.01.2019
09:26:22

Свой
17.01.2019
09:26:24
Привет, можете посоветовать, где найти книги по питону?

Vasia
17.01.2019
09:26:28
если он что-то интенсивно считает - то процессы, если доступ к каким-то ресурсам - то поток