У меня есть процесс узла, который в настоящее время получает запросы POST по номеру https://company/api/bats_hook/. Я хочу уведомить процесс Python о каждом поступлении задания. Я использую node_redis и redis-py, реализация выглядит следующим образом.
Следующий код прекрасно работает локально, когда процесс узла выполняется локально, когда я отправляю конечную точку узла на сервер, я не получаю события?
Как подписаться наконечная точка на сервере от клиента Python? Чего не хватает? У меня есть сервер redis, развернутый на сервере https://company/api/bats_hook/
javascript
var redis = require("redis"),
//redisClient = redis.createClient();
redisClient = redis.createClient({url: process.env.REDIS_URL});
app.post("/api/bats_holder", (req, res, next) => {
console.log(req.query.params)
console.log(req.body)
console.log(req.body.name)
// This publishes a message to the "bats hook channel"
redisClient.publish("bats hook channel", JSON.stringify({
params: req.query.params,
body: req.body,
}));
res.status(200).json({
message: "BATS object",
posts: req.body
});
});
python
import redis
r = redis.Redis()
p = r.pubsub()
p.subscribe('bats hook channel')
# This blocks and reads any messages from the "bats hook channel" as they come in
for message in p.listen():
print(message)