Hi all,
need help on an error raised by a background job. Basically i’m testing a new scheduler using rq-scheduler
and I want to display a realtime message to all site users using:
frappe.publish_realtime(event='msgprint', message='Welcome to all'))
on bash window:
08:16:45 worker_default.1 | 08:16:45 RuntimeError: no object bound to session
08:16:45 worker_default.1 | Traceback (most recent call last):
08:16:45 worker_default.1 | File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/rq/worker.py", line 713, in perform_job
08:16:45 worker_default.1 | rv = job.perform()
08:16:45 worker_default.1 | File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/rq/job.py", line 558, in perform
08:16:45 worker_default.1 | self._result = self._execute()
08:16:45 worker_default.1 | File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/rq/job.py", line 564, in _execute
08:16:45 worker_default.1 | return self.func(*self.args, **self.kwargs)
08:16:45 worker_default.1 | File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/background_jobs.py", line 210, in test_job
08:16:45 worker_default.1 | frappe.publish_realtime(event='msgprint', message='sleeping for {0} secs ...'.format(s))
08:16:45 worker_default.1 | File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 1285, in publish_realtime
08:16:45 worker_default.1 | return frappe.async.publish_realtime(*args, **kwargs)
08:16:45 worker_default.1 | File "/home/frappe/frappe-bench/apps/frappe/frappe/async.py", line 76, in publish_realtime
08:16:45 worker_default.1 | user = frappe.session.user
08:16:45 worker_default.1 | File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/werkzeug/local.py", line 347, in __getattr__
08:16:45 worker_default.1 | return getattr(self._get_current_object(), name)
08:16:45 worker_default.1 | File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/werkzeug/local.py", line 310, in _get_current_object
08:16:45 worker_default.1 | raise RuntimeError('no object bound to %s' % self.__name__)
08:16:45 worker_default.1 | RuntimeError: no object bound to session
08:16:45 worker_default.1 | Traceback (most recent call last):
08:16:45 worker_default.1 | File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/rq/worker.py", line 713, in perform_job
08:16:45 worker_default.1 | rv = job.perform()
08:16:45 worker_default.1 | File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/rq/job.py", line 558, in perform
08:16:45 worker_default.1 | self._result = self._execute()
08:16:45 worker_default.1 | File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/rq/job.py", line 564, in _execute
08:16:45 worker_default.1 | return self.func(*self.args, **self.kwargs)
08:16:45 worker_default.1 | File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/background_jobs.py", line 210, in test_job
08:16:45 worker_default.1 | frappe.publish_realtime(event='msgprint', message='sleeping for {0} secs ...'.format(s))
08:16:45 worker_default.1 | File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 1285, in publish_realtime
08:16:45 worker_default.1 | return frappe.async.publish_realtime(*args, **kwargs)
08:16:45 worker_default.1 | File "/home/frappe/frappe-bench/apps/frappe/frappe/async.py", line 76, in publish_realtime
08:16:45 worker_default.1 | user = frappe.session.user
08:16:45 worker_default.1 | File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/werkzeug/local.py", line 347, in __getattr__
08:16:45 worker_default.1 | return getattr(self._get_current_object(), name)
08:16:45 worker_default.1 | File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/werkzeug/local.py", line 310, in _get_current_object
08:16:45 worker_default.1 | raise RuntimeError('no object bound to %s' % self.__name__)
08:16:45 worker_default.1 | RuntimeError: no object bound to session
any hint?