if ou delete the scheduler_task record, the corresponding records from 
scheduler_run will be deleted by the Foreign key constraint between 
scheduler_run and scheduler_task. You can verify it counting how many 
records are actually deleted by your deletion of scheduler_run: they should 
amount to 0 

On Monday, October 6, 2014 5:32:37 PM UTC+2, Pengfei Yu wrote:
>
> Sorry, There is a typo in the previous question. In this sentence "In the 
> data table scheduler_worker and scheduler_run I want to delete both 
> entries", what I want to say is "scheduler_task" and "scheduler_run" 
> tables. In my design, I linked a project with a task by adding an field 
> called "processID" for each project which is identical to uuid of 
> corresponding task. So that the "project" table and "scheduler_task" table 
> could be linked. 
>
> You are right that each time I delete a record in scheduler_task, one 
> linked record in scheduler_run need to be deleted as well (assuming that 
> the task is completed). 
>
> So I currently I used this script to delete a record in project and 
> scheduler_task and scheduler_run:
>
> def delete():
>     processID = request.args(0)
>     project = db.project(db.project.processID==processID)
>     db(db.project.processID==processID).delete()
>     task = db.scheduler_task(db.scheduler_task.uuid==processID)
>     db(db.scheduler_run.task_id==task.id).delete()
>     db(db.scheduler_task.uuid==processID).delete() 
>
> On Saturday, October 4, 2014 2:51:42 PM UTC-4, Niphlod wrote:
>>
>> On Friday, October 3, 2014 8:19:46 PM UTC+2, Pengfei Yu wrote:
>>>
>>> Thanks a lot for your detailed explanation for the difference between 
>>> Celery and scheduler! I think currently scheduler is enough for our 
>>> application, and it is easier to implement (thanks to great work of your 
>>> team). May I have one more question. If I want to allow user to delete one 
>>> of his projects, which means the task associated with the project will also 
>>> be deleted, is there a simple command in scheduler to do that. In the data 
>>> table scheduler_worker and scheduler_run I want to delete both entries. 
>>> Should I use db(db.scheduler_*.uuid==<an_id>).delete() for both of them, or 
>>> there is a single command like scheduler.delete_task(uuid) to do that. I am 
>>> not sure if scheduler.terminate(), scheduler.stop_task() or scheduler.kill 
>>> can do that. 
>>>
>>>
>> I think you need to make a tour on w2p_scheduler_test 
>> <https://github.com/niphlod/w2p_scheduler_tests> beforehand. It seems 
>> that some basic concept on what is the scheduler API is somehow obscure to 
>> you.
>>
>> The scheduler is a way to let some task be processed outside web2py. How 
>> you (and anyone else) manage the correlation between tasks sent to the 
>> scheduler and their own app (e.g., your requirement for them to be 
>> "assigned to a project") is entirely up to your application's code.
>> The data in scheduler_worker shouldn't matter to you: it's the table 
>> where workers coordinate among themselves and carries some statistics 
>> around.
>> scheduler_task is the table that holds all the tasks you sent (and where 
>> you can check their statuses). 
>> scheduler_run is the table where return data (if needed) is stored.
>> That being said, if you delete a task, its return data (if it's there), 
>> is deleted, because there is a foreign key that links the two tables (to be 
>> even more plain in explanations, there's no way you can delete a 
>> scheduler_task row without deleting ALSO the corresponding records on 
>> scheduler_run).
>> Ultimately, the kill() and terminate() methods are to there manage worker 
>> processes (i.e. the things that are processing tasks), not tasks directly.
>> stop_task() instead is a method to manage a possibly RUNNING task (i.e. 
>> something that you clearly can't dequeue, because it's already being 
>> processed), asking the corresponding worker to stop processing it (so it 
>> can be free to process other tasks). calling stop_task on a task that is 
>> not RUNNING will result in that task never being processed (it will be 
>> marked as STOPPED and nobody will pick that up) 
>>
>

-- 
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