mercury-py (Mercury for Python) 是一个基于 Python 的微服务,允许管理预定的通知发送。
项目描述
汞py
mercury-py ( Mercury for Python ) 是一个基于 Python 的微服务,允许管理预定通知的发送。
介绍
该项目由一个基于 Flask 的 RESTful Web API组成,通过它可以管理通知的调度。
SQLite数据库在内部使用。
MongoDB数据库用于存储预定通知。
通知的发送由基于 Celery 的子模块管理:
- 一种芹菜节拍,可作为工人的激活剂。
- 每个通知类别都有一个Celery Worker,负责管理特定类型的调度。
RabbitMQ消息代理用于进程间通信。
通知类别
当前可以发送的通知类别有:
- 电子邮件。
将实施类别:
- 短信;
- 推送通知 - Firebase 云消息传递( FCM );
- 电报消息。
设置说明
在做了
要下载水星,要么分叉这个GitHub仓库,要么通过pip从PyPI下载它:
pip install mercury-py
安装依赖项
水星需求:
- MongoDB:从官方网站 ( https://www.mongodb.com/ ) 或从您的 Linux 发行版的官方存储库获取它,例如,在类似 Debian 的系统上:
sudo apt install mongodb
- RabbitMQ:从官方网站 ( https://www.rabbitmq.com/ ) 或从您的 Linux 发行版的官方存储库获取它,例如,在类似 Debian 的系统上:
sudo apt install rabbitmq-server
之后,要使用 Mercury,我们需要创建一个RabbitMQ用户、一个虚拟主机并允许该用户访问该虚拟主机:
从终端输入(用适当的值替换下面的 [MYUSER] 和 [MYPASSWORD]):
sudo rabbitmqctl add_user [MYUSER] [MYPASSWORD]
sudo rabbitmqctl add_vhost mercury
sudo rabbitmqctl set_permissions -p mercury [MYUSER] ".*" ".*" ".*"
有关访问控制的更多信息,请参阅RabbitMQ 管理员指南( http://www.rabbitmq.com/admin-guide.html#access-control )。
配置
将文件config-*.py复制并粘贴到文件夹configs中, 并根据需要进行修改。
配置密钥
SECRET_KEY 应该在生产中更改为一些随机字节。
您可以使用以下命令输出随机密钥:
$ python -c 'import os; print(os.urandom(16))'
然后将返回值放入您的config.py中。
注意:Windows系统
在Windows系统上,必须安装额外的依赖项才能使基于 Celery 的子模块正常运行。
通过pip从PyPI下载并安装Gevent:
pip install gevent
并从终端运行(Celery Beat和Celery Workers ):
beat --app=mercury.app.celery --logfile=instance/logs/celerybeat.log --loglevel=DEBUG --pidfile=instance/celerybeat/celerybeat.pid --schedule=instance/celerybeat/celerybeat-schedule.db
worker --app=mercury.app.celery --logfile=instance/logs/celeryworker.log --loglevel=DEBUG --pool=gevent