不假思索地收发信息
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¶m2=value2
因此,要连接到SQS,您可以执行以下操作:
morp.interface.sqs.SQS://AWS_ID:AWS_KEY@
您还可以重写一些默认值,如region和 read_lock:
morp.interface.sqs.SQS://AWS_ID:AWS_KEY@?region=us-west-1&read_lock=120
加密
如果要加密所有邮件,可以传入 key或keyfile参数到您的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_前缀
默认情况下,队列名称只是类名,但是如果您希望 以某物作为前缀(例如,prod或dev),那么 可以设置此环境变量并将其作为队列的前缀 名字
晨报
如果使用连接设置环境变量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