Hi all,

I've been working on the $subject and currently there's only one task
remaining to be completed. The main intention of this effort is to migrate
the existing task implementation of BAM to ntasks which is a quartz based
task scheduler component introduced a couple of months back. While working
on the aforementioned bit of remaining work, I was confronted with an issue
and here's my suggestions to overcome it.

In the currently used BAM task implementation, there's a mechanism called
DataContext which is used to pass some runtime data to a particular task
execution (such as default credentials to log into cassandra, tenant ID,
etc) and to populate it with records that are fetched from cassandra (using
the GetAnalyser) in memory. Whenever a task is scheduled this object is
passed into it which then uses the DataContext object to grab the necessary
runtime information required for the task execution. Ntasks being a generic
task scheduler component, only accepts a map of string key value pairs as
run time properties. In other words, if it is required to pass additional
set of properties apart from the ones that are provided by default (for
example, cron expression, task count, task interval, etc) then they have to
be passed as Strings. Thus, we either need to serialize the DataContext or
we need to find some other mechanism to pass those properties in the
DataContext to the corresponding task.

IIUC, I believe it would be more appropriate if it is possible to make the
DataContext local to the task execution since a task being a single
independent execution unit and the DataContext is also bound to a
particular task. To elaborate more on this, the DataContext seems to be
effectively used in the task execution phase, so I believe, there's a
possibility for us to build it up at the aforementioned phase without
initializing it in the task scheduling phase. This way we can even get rid
of the usage of the binding of DataContext at the task scheduling phase.
And we can also pass the properties of the DataContext as String key value
pairs as well.

Had an offline chat with Tharindu on this and we agreed to proceed with the
above suggested mechanism which involves removing the binding of the
DataContext object at the task scheduling phase.



Regards,
-- 
Prabath Abeysekara
Software Engineer
WSO2 Inc.
Email: [email protected] <[email protected]>
Mobile: +94774171471

<http://harshana05.blogspot.com/>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to