Python 将会话传递给背景任务cherrypy
我在为我的后台任务正确配置函数以接收cherrypy时遇到问题。我希望后台任务使用会话数据,能够重新生成当前会话,并使会话过期 这是我正在尝试的一个例子Python 将会话传递给背景任务cherrypy,python,web-applications,cherrypy,Python,Web Applications,Cherrypy,我在为我的后台任务正确配置函数以接收cherrypy时遇到问题。我希望后台任务使用会话数据,能够重新生成当前会话,并使会话过期 这是我正在尝试的一个例子 import cherrypy import cherrypy.process.plugins class MainApp(object): def signin(self,user,pass): cherrypy.session['username'] = username cherrypy.ses
import cherrypy
import cherrypy.process.plugins
class MainApp(object):
def signin(self,user,pass):
cherrypy.session['username'] = username
cherrypy.session['password'] = password
def communicateWithServer(self):
user = cherrypy.session.get('username')
password = cherrypy.session.get('password')
response = requests.get("http://someserver/api?username="+user+"&password="+password)
cherrypy.process.plugins.BackgroundTask(600, communicateWithServer (object)).start()
但是我得到了这个错误
Traceback (most recent call last):
File "main.py", line 34, in <module>
class MainApp(object):
File "main.py", line 202, in MainApp
cherrypy.process.plugins.BackgroundTask(600, communicateWithServer(object)).start()
File "main.py", line 191, in loginReport
user = cherrypy.session.get('username')
AttributeError: 'module' object has no attribute 'session'
回溯(最近一次呼叫最后一次):
文件“main.py”,第34行,在
类MainApp(对象):
MainApp中第202行的文件“main.py”
cherrypy.process.plugins.BackgroundTask(600,communicateWithServer(object)).start()
loginReport中第191行的文件“main.py”
user=cherrypy.session.get('username')
AttributeError:“模块”对象没有“会话”属性
将会话传递给backgroundTask的正确方法是什么?因为会话不能按我最初的意图使用,所以我使用sqlite3数据库来存储会话中的数据,然后从那里与服务器通信。
cherrypy.session
是一个本地线程,它绑定到用户的请求,因此仅在HTTP请求-响应流期间可用。您可以指定您要完成的高级任务吗?我想使用会话存储用户名和密码,以反复联系登录服务器,确保其他用户可以看到该用户处于联机状态。我可以将数据保存到一个文件中,但我认为会话会更方便。您不能以这种方式使用会话。您可能希望将smth作为Redis商店来使用。请随意提问,也许其他人会提出比这更好的建议:)