• Yoshinori Okuji's avatar
    This big change optimizes the scheduling of active objects, · 1c300e5c
    Yoshinori Okuji authored
    and fix some bugs.
    
    The basic idea is to track a dependency graph to find executable
    messages quickly. This makes the activity system far more efficient,
    when you have many inter-dependent messages queued in the tables.
    
    Also, this obsoletes the time shifting in the schedulers,
    as executable messages can be found in a more efficient manner.
    So the activity parameter "at_date" should work expectedly.
    
    Now the API of validate methods in Activities return a
    list of message objects instead of a boolean value. Such
    a list contains messages that are depended upon by a given
    message.
    
    The validate method in Message accepts a new optional
    parameter, check_order_validation, to indicate whether
    order validation should be performed. The default behavior
    has not changed.
    
    getDependentMessageList is added to ActivityTool, Queue
    and Message. This method collects dependent message for
    a given message from all activities.
    
    There are some other subtle changes. Look at the diffs for
    more details.
    
    
    git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@14039 20353a03-c40f-0410-a6d1-a30d3c3de9de
    1c300e5c
ActivityTool.py 36.5 KB