传输文件以执行脚本 NiFi 使用 python



我正在尝试使用NiFi ExecuteScript使用Python将消息发布到irc聊天室。我是否使用正确的语法将流文件从队列传递到处理器?处理器错误与 NameError 一起出现:未定义全局名称"服务器",但我不确定是什么原因造成的。一切似乎都正常,直到我添加 session.get((。

import socket
from org.apache.nifi.processor.io import StreamCallback, InputStreamCallback
class PyStreamCallback(InputStreamCallback):
def __init__(self):
pass
self.ircsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.server = "irc.freenode.net"
self.channel = ""
self.botnick = ""
self.ircsock.connect((server, 6667))
self.ircsock.send(bytes("USER "+ botnick +" "+ botnick +" "+ botnick + " " + botnick + "n"))
self.ircsock.send(bytes("NICK "+ botnick +"n"))
def joinchan(self, chan):
self.ircsock.send(bytes("JOIN "+ chan +"n"))
ircmsg = ""
while ircmsg.find("End of /NAMES list.") == -1:
self.ircmsg = ircsock.recv(2048)
self.ircmsg = ircmsg.strip('nr')
print(ircmsg)
def sendmsg(self, msg, target=channel):
self.ircsock.send(bytes("PRIVMSG "+ target +" :"+ msg +"n"))

flowFile = session.get()
if (flowFile != None):
flowFile = session.read(flowFile,PyStreamCallback())
session.commit()
self.ircsock.connect((server, 6667))

应该是

self.ircsock.connect((self.server, 6667))

最新更新