不假思索地收发信息

morp的Python项目详细描述


不用想就发信息。当前使用 亚马逊的SQS

1分钟开始

发送和接收Foo消息。

首先,设置环境变量:

export MORP_DSN=morp.interface.sqs.SQS://AWS_ID:AWS_KEY@

其次,让我们创建一个Foo类:

importmorpclassFoo(morp.Message):deftarget(self):# this will be run when a message is consumedprint(self.fields)

第三,让我们开始我们的信息消费者

$ morp --quiet

第四,我们发送一条消息:

f=Foo()f.some_field=1f.some_other_field=2f.send()

我们结束了,看看example folder中的 实际代码

DSN公司

使用DSN配置连接,格式如下:

InterfaceName://username:password@?param1=value1&param2=value2

因此,要连接到SQS,您可以执行以下操作:

morp.interface.sqs.SQS://AWS_ID:AWS_KEY@

您还可以重写一些默认值,如regionread_lock

morp.interface.sqs.SQS://AWS_ID:AWS_KEY@?region=us-west-1&read_lock=120

加密

如果要加密所有邮件,可以传入 keykeyfile参数到您的DSN,该DSN包含一个密钥 或者密钥文件的路径和morp将负责加密和 为您透明地解密消息。

如果我们只想有一把钥匙,我们只需修改DSN即可:

morp.interface.sqs.SQS://AWS_ID:AWS_KEY@?key=jy4XWRuEsrH98RD2VeLG62uVLCPWpdUh

要使用密钥文件,首先生成密钥文件:

openssl rand -base64 256 > /tmp/keyfile.key

修改我们的DSN:

morp.interface.sqs.SQS://AWS_ID:AWS_KEY@?keyfile=/tmp/keyfile.key

就这样,每封邮件都会在发送时加密,然后在 接收。

环境配置

MORP U禁用

默认情况下,如果您只想测试 不实际发送消息的功能您可以设置 关闭所有队列的环境变量。

MORP_DISABLED = 1 # queue is off
MORP_DISABLED = 0 # queue is on

MORP_前缀

默认情况下,队列名称只是类名,但是如果您希望 以某物作为前缀(例如,proddev),那么 可以设置此环境变量并将其作为队列的前缀 名字

晨报

如果使用连接设置环境变量MORP_DSN DSN,MORP将在第一次导入时自动配置自身。

常见问题解答

i希望有多个队列

默认情况下,morp将从任何morp.Message派生的 类到Message.get_name(),您可以通过 给您的子类a.name属性:

classchildMsg(morp.Message):name="custom-queue-name"

现在,您可以从该队列中读取Morp命令行使用者 相反:

$ morp --quiet="" custom-queue-name

安装

使用pip:

pip install morp

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java用arraylist中的单词替换txt文件中的单词?   java为ProgressBar提供了一个解决方案。是否接受整数?   java添加鼠标侦听器以删除目标   java删除标点符号的简单程序   java JavaScriptException:(TypeError):无法调用null的方法“getBoundingClientRect”   java我可以在没有对话框的情况下卸载应用程序吗?   执行泛型Java类   如果主线程从不调用线程,那么线程中断的原因是什么。中断()?   导致其他组件不显示的java绘制方法   java ObjectMapper追加文件JSON   Netbeans Java:将我的CSV文件放在哪里?   bouncycastle RSAKeyParameters中的java公钥   java为什么我总是在这个字符串数组中输入a1字符串?   java使用匿名绑定连接到AD并搜索用户DN   从JSP文件向Java应用程序发送socket?