using guest on rabbitMQ, installed django-celery using pip... my task
returns true/false if it succeeds/fails... otherwise it does a lot of
database R/W

Its currently processing a file via the worker, and I'm able to
refresh the web browser on a page that shows how many genes have been
processed for a dataset... every refresh the number of genes is
increasing... so I guess there aren't any DB clash problems!
(hopefully)

now to implement a javascript/AJAX progress bar to start after the
upload finishes!

On Sun, Nov 27, 2011 at 11:49 PM, Brian Schott <bfsch...@gmail.com> wrote:
> What are your settings?  Using carrot?  Kombu?  RabbitMQ?
>
> Does your task try to return a value?
>
> Sent from my iPhone
>
> On Nov 27, 2011, at 11:22 PM, Nathan McCorkle <nmz...@gmail.com> wrote:
>
>> P.S. the printGene function works... printing the messages on the
>> celeryd console terminal... the processXLS1 function doesn't even
>> print anything at all
>>
>> On Sun, Nov 27, 2011 at 11:21 PM, Nathan McCorkle <nmz...@gmail.com> wrote:
>>> Yeah I've seen the djcelery solution before... I've tried implementing
>>> it, but I'm getting an error on the celeryd console:
>>> TypeError: processXLS1() got an unexpected keyword argument 'task_is_eager'
>>>
>>> when I try running processXLS1.delay(dataObjectID=someInteger) from a
>>> function in views.py
>>>
>>> here's what's in my tasks.py:
>>> "
>>> from celery.decorators import task
>>> from enzymeFilter.models import *
>>> from django.db import transaction
>>>
>>> @task
>>> def printGene(y):
>>>        print "ppppppppppppppppppp"
>>>        fil=open('/var/www/media/testFile','w')
>>>        fil.write('coming from background')
>>>        fil.close()
>>>
>>>        print Gene.objects.get(id=y+1)
>>>        return True
>>>
>>> @task
>>> @transaction.commit_manually
>>> def processXLS1(datasetObjectID):
>>>        print "processing XLS as task"
>>>        datasetObject = Dataset.objects.get(id=datasetObjectID)
>>>        try:
>>>            ... more processing code
>>> "
>>>
>>> thanks
>>> -Nathan
>>>
>>> On Sun, Nov 27, 2011 at 9:52 PM, Brian Schott <bfsch...@gmail.com> wrote:
>>>> You really should look at django-celery and RabbitMQ.  The upload submit 
>>>> can initiate a task that is defined in tasks.py.  There are separate 
>>>> worker processes that pick up the task from the message queue and do the 
>>>> actual work.  These workers don't even have to be on the same machine with 
>>>> rabbitMQ so you get instant scalability.   Then your AJAX job status view 
>>>> can poll a job status table that is updated by the task and you don't have 
>>>> to worry about threads.
>>>> https://github.com/ask/django-celery
>>>>
>>>> Brian Schott
>>>> bfsch...@gmail.com
>>>>
>>>>
>>>>
>>>> On Nov 27, 2011, at 8:54 PM, Nathan McCorkle wrote:
>>>>
>>>>> I'm using Django 1.3 and am processing 3 files into genes, proteins,
>>>>> and genomes for a tool I built... this processing usually takes
>>>>> between 5 minutes to a few hours, depending on the genome size.
>>>>>
>>>>> After uploading the files (10-100 MB), the upload view begins
>>>>> processing the files, without returning for a long time (causing my
>>>>> browser to ask me if I want to kill the plupload script).
>>>>>
>>>>> For the user of this app, they don't know if their upload failed or is
>>>>> processing, etc... so I'd think forking the processing function (or
>>>>> making it a new thread) is what needs to happen, then the view can
>>>>> return to the user, and the upload page can start doing AJAX requests
>>>>> to check to processing progress.
>>>>>
>>>>> I feel like I want to do this:
>>>>> http://www.artfulcode.net/articles/threading-django/
>>>>> but am scared of crashing because I've heard Django isn't threadsafe
>>>>> with transactions. (and my processing function is making DB
>>>>> transactions)
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google Groups 
>>>>> "Django users" group.
>>>>> To post to this group, send email to django-users@googlegroups.com.
>>>>> To unsubscribe from this group, send email to 
>>>>> django-users+unsubscr...@googlegroups.com.
>>>>> For more options, visit this group at 
>>>>> http://groups.google.com/group/django-users?hl=en.
>>>>>
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google Groups 
>>>> "Django users" group.
>>>> To post to this group, send email to django-users@googlegroups.com.
>>>> To unsubscribe from this group, send email to 
>>>> django-users+unsubscr...@googlegroups.com.
>>>> For more options, visit this group at 
>>>> http://groups.google.com/group/django-users?hl=en.
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Nathan McCorkle
>>> Rochester Institute of Technology
>>> College of Science, Biotechnology/Bioinformatics
>>>
>>
>>
>>
>> --
>> Nathan McCorkle
>> Rochester Institute of Technology
>> College of Science, Biotechnology/Bioinformatics
>>
>> --
>> You received this message because you are subscribed to the Google Groups 
>> "Django users" group.
>> To post to this group, send email to django-users@googlegroups.com.
>> To unsubscribe from this group, send email to 
>> django-users+unsubscr...@googlegroups.com.
>> For more options, visit this group at 
>> http://groups.google.com/group/django-users?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Django users" group.
> To post to this group, send email to django-users@googlegroups.com.
> To unsubscribe from this group, send email to 
> django-users+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/django-users?hl=en.
>
>



-- 
Nathan McCorkle
Rochester Institute of Technology
College of Science, Biotechnology/Bioinformatics

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to