trying to learn web2py with rq but ended with error
*- install rq*
source activate test2
pip install rq

*- start web2py (stable version 2.16.1 on python 2.7)*
source activate test2
python ~/python/web2py/web2py.py --nogui --no-banner -a a -i 0.0.0.0 -p 8000

*- create new web2py app named : redis*

*- create modules*
*modules/queued_functions.py*

#!/usr/bin/env python
#-*- coding:utf-8 -*-
# need to put this for mail to work
import sys
sys.path.append("/Users/sugizo/python/web2py")
from gluon.tools import Mail
def send_email(*args, **kwargs):
    mail = Mail()
    mail.settings.server = 'mail.hosting.com:25'
    mail.settings.sender = '[email protected]'
    mail.settings.login = '[email protected]:password'
    return mail.send(*args, **kwargs)

*- add to models*
*models/db.py*

from redis import Redis
from rq import Queue
q = Queue(connection=Redis())

*- add to controllers*
*controllers/default.py*

def contact():
    import queued_functions
    form = SQLFORM.factory(Field("name", label="your name"), 
Field("message", "text"))
    if form.accepts(request):
        q.enqueue(queued_functions.send_email, to="[email protected]", 
subject="%s contacted you" % form.vars.name, message=form.vars.message)
    return dict(form=form)

*- start redis server from source install (stable version 4.0.9)*
./src/redis-server

*- start rqworker*
source activate test2
rqworker

*- fill the form in browser : http://localhost:8000/redis/default/contact*

*result in rqworker*
04:40:32 default: 
applications.redis.modules.queued_functions.send_email(message='a', 
subject='a contacted you', to='[email protected]') 
(b416fc6c-f6c9-4415-8194-0e75fdc47a10)
04:40:32 ImportError: No module named 
applications.redis.modules.queued_functions
Traceback (most recent call last):
  File 
"/Users/sugizo/miniconda3/envs/test2/lib/python2.7/site-packages/rq/worker.py", 
line 789, in perform_job
    rv = job.perform()
  File 
"/Users/sugizo/miniconda3/envs/test2/lib/python2.7/site-packages/rq/job.py", 
line 573, in perform
    self._result = self._execute()
  File 
"/Users/sugizo/miniconda3/envs/test2/lib/python2.7/site-packages/rq/job.py", 
line 579, in _execute
    return self.func(*self.args, **self.kwargs)
  File 
"/Users/sugizo/miniconda3/envs/test2/lib/python2.7/site-packages/rq/job.py", 
line 206, in func
    return import_attribute(self.func_name)
  File 
"/Users/sugizo/miniconda3/envs/test2/lib/python2.7/site-packages/rq/utils.py", 
line 152, in import_attribute
    module = importlib.import_module(module_name)
  File 
"/Users/sugizo/miniconda3/envs/test2/lib/python2.7/importlib/__init__.py", 
line 37, in import_module
    __import__(name)
ImportError: No module named applications.redis.modules.queued_functions
Traceback (most recent call last):
  File 
"/Users/sugizo/miniconda3/envs/test2/lib/python2.7/site-packages/rq/worker.py", 
line 789, in perform_job
    rv = job.perform()
  File 
"/Users/sugizo/miniconda3/envs/test2/lib/python2.7/site-packages/rq/job.py", 
line 573, in perform
    self._result = self._execute()
  File 
"/Users/sugizo/miniconda3/envs/test2/lib/python2.7/site-packages/rq/job.py", 
line 579, in _execute
    return self.func(*self.args, **self.kwargs)
  File 
"/Users/sugizo/miniconda3/envs/test2/lib/python2.7/site-packages/rq/job.py", 
line 206, in func
    return import_attribute(self.func_name)
  File 
"/Users/sugizo/miniconda3/envs/test2/lib/python2.7/site-packages/rq/utils.py", 
line 152, in import_attribute
    module = importlib.import_module(module_name)
  File 
"/Users/sugizo/miniconda3/envs/test2/lib/python2.7/importlib/__init__.py", 
line 37, in import_module
    __import__(name)
ImportError: No module named applications.redis.modules.queued_functions
04:40:32 Moving job to u'failed' queue
04:40:32 Cleaning registries for queue: default

any idea?

thanks and best regards,
stifan

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to