Рубрики
Без рубрики

Оздоровительная проверка с использованием смс и провисания

То, что я построил / настроил, я работаю над небольшим веб-приложением, который интегрирует Twilio Wi … Теги с твилиохаконом, слабым, питоном.

Что я построил/я строю

Я работаю над небольшим веб-приложением, который интегрирует Twilio с помощью провисания, позволяя компанию использовать провину как маршрутизатор интерфейса/сообщения для Twilio. Это позволяет кому-то быстро вытеснить процесс (только для стоимости текстовых сообщений и небольшой виртуальной машины) и использовать Slack Desktop/Mobile/Web GUI и все оповещения, регистрации, поиск, интеграции, которые поставляются с ним. Это также позволило мне избежать большую часть развития котельной/передней части, я презираю/не знаю, как делать/не было бы время для завершения

Представление категории:

COVID-19 связи

Ссылка на код/скриншоты/настройка

https://github.com/mikejagmin/wellness_check

Как я построил это

Python Flask Web Framework Библиотека помощника помощника Twilio Python Slack Client/Event API Детали. JS Mysql/sqlite Redis Python-RQ (легкая очередь работы)

Как я получил это, чтобы бежать где-то, кроме моей местной машины (и с HTTPS!): https://www.digitalocean.com/community/tuTorials/how-to-serve-flask-applations-with-gunicorn-and-nginx-on-ubuntu-18-04.

Дополнительные ресурсы/информация

Друг пришел ко мне с необходимостью проведения оздоровительных проверок за ~ 200 сотрудников на 5-6 местоположений/групп. Они надеялись использовать текстовые сообщения для оптимизации процесса проверки, в то время как офисы замкнуты, но нуждаются в пути к журналу ответов. Я придумал эту идею, основанную на некоторых слабых интеграциях, которые я построил в прошлом. Проект развивается примерно в 2 недели.

Я выбрал провину из-за простого в использовании API. Каналы хорошо работают для организации связи, а настольные/мобильные уведомления позволят руководству увидеть ответы в режиме реального времени, если кто-то пройдет на помощь. Была обеспокоенность помощи, не в состоянии предоставлять своевременно, если ответы только пошли в базу данных и должны были быть запрошены. Создание чего-то с настольными/толчкованными уведомлениями или приложением – огромное обязательство, но Slack API позволил мне легко использовать свой большой UX.

Изучение/улучшения до сих пор:

Представляем очередь рабочей очереди для разгрузки запроса обработки с веб-сервера

Я был обеспокоен, если многие люди начали быстро ответить на веб-сервер, не сможет принять запросы достаточно быстро. Во время тестирования я испытал некоторые случаи, когда Twilio претеннет сообщение, потому что мой веб-сервер был медленным, чтобы ответить. Я считал:

  • Увеличение размера экземпляра или добавление веб-серверов Я быстро понял, что это также потребует балансировщик нагрузки и размещенную базу данных (использовал SQLite для разработки/тестирования), что бы быстро было бы быстро увеличить стоимость/сложность. Ящик моего использования не имеет нагрузки 98% времени, то большое количество исходящих сообщений, сопровождаемых большим числом, затем медленная струйка ответов, а также несколько запросов данных для аудита ответа. Так Перерывная обработка, которая, вероятно, будет означать много местных мощностей, выходящих из моего копирования.

  • Использовать меньшую архитектуру Я быстро вернулся к реальности, когда я вспомнил, что большинство моего приложения зависит от входящих запросов от Slack/Twilio и Web-отчетов, которые нуждались в том, чтобы что-то работало полный рабочий день. Дополнительная стоимость автономной базы данных SQL, в паре с рефакторингом для архитектуры меньше сервера, казалась ненужной добавленной сложности.

Отчет о веб-сайте:

Я оказался несколько гибридным подходом, тестируя новый к мне Python одновременно-фьючерсы , который оказался намного проще реализовать, чем я ожидал и позволил моему веб-серверу отвечать на запросы сразу, а «тяжелый подъем» продолжил на заднем плане. Этот гибридный подход сохранил свои затраты SUB $ 20/месяц (не включая SMS), которые мой друг был вполне доволен.

Я все еще обеспокоен запустить фьючерсы в моем приложении в колбе, поэтому я остановился на местных входящих входящих сообщений, используя Python-RQ и рабочий процесс, работающий внутри экземпляра TMUX для обработки фактических запросов. Я подозреваю, что есть способ предоставить приоритетное использование процесса веб-сервера ресурсов и позволить рабочему процессу, когда ресурсы не используются, поскольку небольшая задержка в записи записей является приемлемой. Я держал одновременные фьючерсы как неудачу, если очередь не отвечает, используя обычную старую попытку/кроме. Я сделал что-то подобное, когда я переехал в MySQL из SQLite, сохраняя локальную БД и продолжая синхронизировать пользовательские данные и данные канала для них обоим в случае сбоя. Я думал, что это предоставило дешевое страхование.

Создание команд SLASH для снижения необходимости отчетности/экспорта Cumberome Web GUI

Сегодня я переместил общие задачи аудита в команды Slack Slash, чтобы пользователь больше не должен посетить отчетность на веб-сообщении, чтобы проверить, кто не ответил. Набрав /NOREPLY 24 В канале Slase ответит в DM со списком контактов, которые не ответили в течение последних 24 часов. Это намного проще, чем входить в сайт, поиск, а затем сортировка по времени ответа

Я также добавил /отчет Команда, включающая новый пакет, я начал использовать недавно, openpyxl. , разбирать файлы Excel. Команда запускает тот же запрос SQL, используемый отчетом переднего конца, экспортирует данные в XLSX, а затем использует очень хорошо написанный Python Slack Python (2.0), чтобы опубликовать файл к прямому сообщению.

Я был впечатлен 1.0, но 2.0 исправил все мои предыдущие гипты. Чтобы загрузить файл – абсолютный кусок пирога:

               channels=channel, username=from_user,
               file=file_location, filename=file_name, title=title,
               text=body)

Остальная часть Slack API так же, как удобная для пользователя, а документация/тестер была огромной помощью во время обучения: https://api.slack.com/methods/files.upload. . Я настоятельно рекомендую это для быстрой отчетности/уведомления об ошибках. Я начал использовать слабину, чтобы уведомить меня, если длительный бегущий ETL/анализ, который я бегал, сломался или завершен, так как я бы слишком часто двигался на что-то еще и вернусь спустя, чтобы позже он потерпел неудачу на плохом ряду>:(. Добавив одну строку Slack Web-Tool с True/кроме обертки, я получаю Ping, когда работа прекратилась или завершена.

Сегодня был очень образовательный день, как я узнал, как использовать Git-Filter-филиал, чтобы удалить старый Буш из моей истории и должен заставить себя писать некоторую разметку.

Далее мне нужно написать несколько единиц-тестов (я только говорю, что в течение 5 лет …) И научитесь насмешлить в Mock Twilio, что сделало бы тестирование намного проще. Кроме того, я думаю о элегантном способе получить отгрузочные части CRUD для управления контактами SMS через SLIC, поэтому я могу удалить передний конец от базового использования. Возможность падения файла XLS отформатирована правильно для обновления объемного импорта непосредственно в канал, просто произошло для меня, как я пишу это, и был бы довольно нефте …

Онлайн https://www.roomservicefest.com Что удерживало меня всему дню, намотание, но вернутся завтра, поэтому, если кто-то читает это до 27-го проверки.

Оригинал: “https://dev.to/mikejagmin/wellness-check-using-sms-and-slack-1d24”