On 04/19/2015 09:11 AM, Todd Morgan wrote:
Hi,
I'm trying to set up a new Kallithea 0.2.1 installation upon a Win2k12 box (clean - nothing else installed).

I am able to get Kallithea working AOK without Celery and RabbitMQ - but I have a large number of repos (100+) to support so I need the scaling Celery provides.

When I enable celery I get a message in the celeryD log indicating that "*Task of kind 'kallithea.lib.celerylib.tasks.create_repo' is not registered, please make sure it's imported."*

[2015-04-19 22:13:48,183: DEBUG/MainProcess] Consumer: Ready to accept tasks! [2015-04-19 22:20:14,302: INFO/MainProcess] Got task from broker: kallithea.lib.celerylib.tasks.create_repo[65d4b6a4-8ef8-41d0-9f75-32479394e32e] [2015-04-19 22:20:14,332: DEBUG/MainProcess] Mediator: Running callback for task: kallithea.lib.celerylib.tasks.create_repo[65d4b6a4-8ef8-41d0-9f75-32479394e32e] [2015-04-19 22:20:14,348: DEBUG/MainProcess] TaskPool: Apply <function execute_and_trace at 0x00000000053A6E48> (args:('kallithea.lib.celerylib.tasks.create_repo', '65d4b6a4-8ef8-41d0-9f75-32479394e32e', ({'repo_type': u'git', 'repo_name': u'automation', 'repo_enable_downloads': False, '_authentication_token': u'85022200563145360862159926964161116912', 'repo_copy_permissions': False, 'repo_enable_locking': False, 'repo_landing_rev': u'rev:tip', 'group_name': '', 'clone_uri': u'', 'add': u'Add', 'repo_name_full': u'automation', 'repo_group': None, 'group_path': '', 'repo_private': False, 'repo_enable_statistics': False, 'repo_description': u'http://littleone:8088/scm/git/automation.git' <http://littleone:8088/scm/git/automation.git%27>}, 2), {}) kwargs:{'hostname': 'WIN-PF6LKO8R2ST', 'request': {'retries': 0, 'loglevel': 10, 'delivery_info': {'consumer_tag': u'2', 'routing_key': u'celery', 'exchange': u'celery'}, 'is_eager': False, 'taskset': None, 'logfile': 'celeryd.log', 'id': '65d4b6a4-8ef8-41d0-9f75-32479394e32e'}}) [2015-04-19 22:20:14,380: DEBUG/MainProcess] Task accepted: kallithea.lib.celerylib.tasks.create_repo[65d4b6a4-8ef8-41d0-9f75-32479394e32e] pid:2884 [2015-04-19 22:20:14,473: ERROR/MainProcess] Task kallithea.lib.celerylib.tasks.create_repo[65d4b6a4-8ef8-41d0-9f75-32479394e32e] raised exception: *Task of kind 'kallithea.lib.celerylib.tasks.create_repo' is not registered, please make sure it's imported.*
NotRegistered: 'kallithea.lib.celerylib.tasks.create_repo'
None

As you suggest, this seems to mean that celeryd runs in a way where it doesn't see your Kallithea instance and it can thus not launch the create_repo task.


I have followed the instructions here http://kallithea.readthedocs.org/en/latest/installation_win.html

My installation includes:

  * The win2k12 box is clean (VM) setup for testing this - all patches
    - UAC disabled
  * Python 2.7.9 (python-2.7.9.amd64.msi) +
    pywin32-219.win-amd64-py2.7.exe
  * Postgres support ( I had to add this pip install psycopg2 to get
    the postgres support)
  * I installed the latest version of Erlang otp_win64_17.5.exe
  * Latest version of Postgres (postgresql-9.4.1-3-windows-x64.exe)
  * Latest version of Rabbit rabbitmq-server-3.5.1.exe


I wasn't aware that celery was an option on windows ... but it totally makes sense it is. It seems like you have gotten further than the documentation covers - it would be great if you can help extend the documentation ... especially when you get it working in the end ;-)

The post suggests it's not including the relevant "virtual environment" in the path (I'm a java dev by profession rather than a Python dev) so I'm not sure if that's right ...

I did try using a fully qualified path for the Paster.exe

(Env) C:\Kallithea\Bin>C:\Kallithea\Env\Scripts\paster.exe celeryd production.ini & (Env) C:\Kallithea\Bin>C:\Kallithea\Env\Scripts\paster.exe serve production.ini

Is the & a typo? It is sh notation for running a process in the background, but AFAIK it means "command sequence" on windows? Are you sure you actually are launching celeryd here?

It also seems wrong to use a paster.exe directly this way. On unix the virtualenv has a bin/paster which launches a pkg_resources.load_entry_point - it seems magic if this paster.exe does the same ... but perhaps it does.

Given that the machine is solely dedicated to this purpose I also tried NOT using virtualenv - that way it would be impossible??? to get an incorrect context for Celeryd (as there would only be 1 python) and the result was the same - celery task not registered

Yes, that might be simpler in this case. Windows has a stronger tradition for installing Python whereever you want, while Unix systems are more like only having one global installation in a fixed location.

In that case I suggest verifying that you really don't use virtualenv and that Kallithea is installed globally ... and perhaps restart the machine to make sure everything is running in the right environment.


Also, you might consider starting out without celeryd. That might be ok for your actual work load - mainly depending on how often you make big clones or have a slow mail server.


/Mads
_______________________________________________
kallithea-general mailing list
[email protected]
http://lists.sfconservancy.org/mailman/listinfo/kallithea-general

Reply via email to