taskforest-discuss Mailing List for TaskForest Job Scheduler (Page 3)
Brought to you by:
enoor
You can subscribe to this list here.
2009 |
Jan
|
Feb
|
Mar
(10) |
Apr
(10) |
May
(10) |
Jun
(6) |
Jul
(4) |
Aug
|
Sep
(4) |
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
|
Feb
(10) |
Mar
(4) |
Apr
(9) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
(1) |
2014 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Teresia A. <Ter...@sa...> - 2009-05-26 15:17:38
|
On my jobs and status pages the status tag never has a link to the log files for the jobs. It seems the <ifo c=has_output_file> tag is not finding the log files. I have appropriately set the log_dir in my cfg file. Teresia Arthur Software Developer 5 Software Quality Tools and Infrastructure Planning, Operations and Strategy SAS Institute |
From: Aijaz A. <en...@us...> - 2009-05-25 23:35:27
|
Yes, that would do it. When you request a job be rerun and then delete the job from the Family before the job can be rerun, the status command (which is what the website is invoking) tries to access the missing record and that causes the error that you see. The system should handle this condition more gracefully. I'll fix this in the next release. The next version is 1.30, which is already out for testing, so I'll schedule this fix for the next release after that (it should be only a couple of lines of code). Thanks, Aijaz. ---------- Forwarded message ---------- From: Teresia Arthur Date: Fri, May 22, 2009 at 11:24 AM Subject: RE: [Taskforest-discuss] failure after rerun in taskforestd To: Aijaz Ansari <en...@us...> Ahhh….I found it. I was testing and clicked ‘rerun’ on a job then I stopped both taskforest and taskforestd. I replaced the family file with a much shorter one and restarted both taskforest and taskforestd. After doing that it seemed to get lost and I could never get the status page to show. I only got the errors which I sent you. Just now, I replaced the family file with the original and the status page is working again. Very interesting. |
From: Aijaz A. <en...@us...> - 2009-05-22 15:08:22
|
Teresia: What version of TaskForest are you using? Typing in 'perldoc taskforest' should show you the version. It appears that the timezone in one of your family files is not one that DateTime::TimeZone accepts. Could you please send me the header lines from your Family files? These are the lines that look like this: start => '00:00', tz => 'GMT', days => 'Mon,Tue,Wed,Thu,Fri,Sat,Sun' If you have many family files, you could type something like the following from the command line (after you're in the Family directory): grep start * and then send me the output. If you want, you can check with the following URL for a list of valid timezones: http://search.cpan.org/dist/DateTime-TimeZone/lib/DateTime/TimeZone/Catalog.pm You can also find this link on the FAQ page: http://www.taskforest.com/docs/faq.html#tz Hope this helps (if not, let me know :) Aijaz On Fri, May 22, 2009 at 9:30 AM, Teresia Arthur <Ter...@sa...>wrote: > >From the web interface after I selected 'rerun' of one job from the status > page, I no longer can view the status page. I stopped and restarted both > taskforest and taskforestd but the error persists. Here is the error I'm > getting in taskforestd: > > /tst/tools/taskForest/bin/taskforestd > --config_file=/tst/tools/taskForest/cfg/taskforestdDev.cfg > > ******************************************************************************** > Welcome to taskforestd > > ******************************************************************************** > Log file: /tst/tools/defects/dev/logs/taskforestd.stdout > Error file: /tst/tools/defects/dev/logs/taskforestd.stderr > > ******************************************************************************** > ctalnx01.unx.sas.com[284]$ Use of uninitialized value in string comparison > (cmp) at /usr/lib/perl5/site_perl/5.8.5/TaskForest/Family.pm line 258. > Use of uninitialized value in string comparison (cmp) at > /usr/lib/perl5/site_perl/5.8.5/TaskForest/Family.pm line 258. > Use of uninitialized value in string comparison (cmp) at > /usr/lib/perl5/site_perl/5.8.5/TaskForest/Family.pm line 258. > Use of uninitialized value in string comparison (cmp) at > /usr/lib/perl5/site_perl/5.8.5/TaskForest/Family.pm line 258. > Use of uninitialized value in string comparison (cmp) at > /usr/lib/perl5/site_perl/5.8.5/TaskForest/Family.pm line 258. > Use of uninitialized value in string comparison (cmp) at > /usr/lib/perl5/site_perl/5.8.5/TaskForest/Family.pm line 258. > Use of uninitialized value in string comparison (cmp) at > /usr/lib/perl5/site_perl/5.8.5/TaskForest/Family.pm line 258. > Use of uninitialized value in string comparison (cmp) at > /usr/lib/perl5/site_perl/5.8.5/TaskForest/Family.pm line 258. > Use of uninitialized value in string comparison (cmp) at > /usr/lib/perl5/site_perl/5.8.5/TaskForest/Family.pm line 258. > Use of uninitialized value in string eq at > /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/DateTime.pm line > 1839. > > > <h1>**** CANNOT EXECUTE TaskForest::REST::Status *****</h1><pre>The 'name' > parameter (undef) to DateTime::TimeZone::new was an 'undef', which is not > one of the allowed types: scalar > at /usr/lib/perl5/site_perl/5.8.5/DateTime/TimeZone.pm line 34 > DateTime::TimeZone::new('undef', 'name', 'undef') called at > /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/DateTime.pm line > 1843 > DateTime::set_time_zone('DateTime=HASH(0x16536a0)', 'undef') called > at /usr/lib/perl5/site_perl/5.8.5/TaskForest.pm line 266 > TaskForest::status('TaskForest=HASH(0x1578000)', 1) called at > /usr/lib/perl5/site_perl/5.8.5/TaskForest/REST/Status.pm line 62 > TaskForest::REST::Status::GET('CGI=HASH(0x1058550)', > 'HASH(0x108d0d0)', 'HASH(0x10872b0)', 'HASH(0x1577f10)') called at > /usr/lib/perl5/site_perl/5.8.5/TaskForest/REST/Status.pm line 18 > TaskForest::REST::Status::handle('CGI=HASH(0x1058550)', > 'HASH(0x108d0d0)', 'HASH(0x10872b0)') called at (eval 817) line 1 > eval 'TaskForest::REST::Status::handle($q, $hash, $h) > ;' called at /usr/lib/perl5/site_perl/5.8.5/TaskForest/Template.pm line 49 > TaskForest::Template::doFile('CGI=HASH(0x1058550)', > 'HASH(0x108d0d0)', 'HASH(0x10872b0)', 'TaskForest::REST::Status', > '/status2.html') called at > /usr/lib/perl5/site_perl/5.8.5/TaskForest/Template.pm line 38 > TaskForest::Template::explode('CGI=HASH(0x1058550)', '<include > TaskForest::REST::Status /status2.html />\x{d}\x{a}\x{d}\x{a}', > 'HASH(0x108d0d0)', 'HASH(0x10872b0)') called at > /usr/lib/perl5/site_perl/5.8.5/TaskForest/Template.pm line 21 > TaskForest::Template::readFile('CGI=HASH(0x1058550)', > '/tst/tools/taskForest/htdocsDev/status.html', 'HASH(0x108d0d0)', > 'HASH(0x10872b0)') called at /tst/tools/taskForest/bin/taskforestd line 374 > > main::handle_one_connection('HTTP::Daemon::ClientConn=GLOB(0x1000840)') > called at /tst/tools/taskForest/bin/taskforestd line 224 > main::child_does('HTTP::Daemon=GLOB(0xff5650)') called at > /tst/tools/taskForest/bin/taskforestd line 189 > main::fork_a_child('HTTP::Daemon=GLOB(0xff5650)') called at > /tst/tools/taskForest/bin/taskforestd line 144 > main::main() called at /tst/tools/taskForest/bin/taskforestd line > 129 > </pre> > > > Teresia Arthur > Software Developer 5 > Software Quality Tools and Infrastructure > Planning, Operations and Strategy > SAS Institute > > > > > > ------------------------------------------------------------------------------ > Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT > is a gathering of tech-side developers & brand creativity professionals. > Meet > the minds behind Google Creative Lab, Visual Complexity, Processing, & > iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian > Group, R/GA, & Big Spaceship. http://www.creativitycat.com > _______________________________________________ > Taskforest-discuss mailing list > Tas...@li... > https://lists.sourceforge.net/lists/listinfo/taskforest-discuss > |
From: Teresia A. <Ter...@sa...> - 2009-05-22 14:30:16
|
>From the web interface after I selected 'rerun' of one job from the status page, I no longer can view the status page. I stopped and restarted both taskforest and taskforestd but the error persists. Here is the error I'm getting in taskforestd: /tst/tools/taskForest/bin/taskforestd --config_file=/tst/tools/taskForest/cfg/taskforestdDev.cfg ******************************************************************************** Welcome to taskforestd ******************************************************************************** Log file: /tst/tools/defects/dev/logs/taskforestd.stdout Error file: /tst/tools/defects/dev/logs/taskforestd.stderr ******************************************************************************** ctalnx01.unx.sas.com[284]$ Use of uninitialized value in string comparison (cmp) at /usr/lib/perl5/site_perl/5.8.5/TaskForest/Family.pm line 258. Use of uninitialized value in string comparison (cmp) at /usr/lib/perl5/site_perl/5.8.5/TaskForest/Family.pm line 258. Use of uninitialized value in string comparison (cmp) at /usr/lib/perl5/site_perl/5.8.5/TaskForest/Family.pm line 258. Use of uninitialized value in string comparison (cmp) at /usr/lib/perl5/site_perl/5.8.5/TaskForest/Family.pm line 258. Use of uninitialized value in string comparison (cmp) at /usr/lib/perl5/site_perl/5.8.5/TaskForest/Family.pm line 258. Use of uninitialized value in string comparison (cmp) at /usr/lib/perl5/site_perl/5.8.5/TaskForest/Family.pm line 258. Use of uninitialized value in string comparison (cmp) at /usr/lib/perl5/site_perl/5.8.5/TaskForest/Family.pm line 258. Use of uninitialized value in string comparison (cmp) at /usr/lib/perl5/site_perl/5.8.5/TaskForest/Family.pm line 258. Use of uninitialized value in string comparison (cmp) at /usr/lib/perl5/site_perl/5.8.5/TaskForest/Family.pm line 258. Use of uninitialized value in string eq at /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/DateTime.pm line 1839. <h1>**** CANNOT EXECUTE TaskForest::REST::Status *****</h1><pre>The 'name' parameter (undef) to DateTime::TimeZone::new was an 'undef', which is not one of the allowed types: scalar at /usr/lib/perl5/site_perl/5.8.5/DateTime/TimeZone.pm line 34 DateTime::TimeZone::new('undef', 'name', 'undef') called at /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/DateTime.pm line 1843 DateTime::set_time_zone('DateTime=HASH(0x16536a0)', 'undef') called at /usr/lib/perl5/site_perl/5.8.5/TaskForest.pm line 266 TaskForest::status('TaskForest=HASH(0x1578000)', 1) called at /usr/lib/perl5/site_perl/5.8.5/TaskForest/REST/Status.pm line 62 TaskForest::REST::Status::GET('CGI=HASH(0x1058550)', 'HASH(0x108d0d0)', 'HASH(0x10872b0)', 'HASH(0x1577f10)') called at /usr/lib/perl5/site_perl/5.8.5/TaskForest/REST/Status.pm line 18 TaskForest::REST::Status::handle('CGI=HASH(0x1058550)', 'HASH(0x108d0d0)', 'HASH(0x10872b0)') called at (eval 817) line 1 eval 'TaskForest::REST::Status::handle($q, $hash, $h) ;' called at /usr/lib/perl5/site_perl/5.8.5/TaskForest/Template.pm line 49 TaskForest::Template::doFile('CGI=HASH(0x1058550)', 'HASH(0x108d0d0)', 'HASH(0x10872b0)', 'TaskForest::REST::Status', '/status2.html') called at /usr/lib/perl5/site_perl/5.8.5/TaskForest/Template.pm line 38 TaskForest::Template::explode('CGI=HASH(0x1058550)', '<include TaskForest::REST::Status /status2.html />\x{d}\x{a}\x{d}\x{a}', 'HASH(0x108d0d0)', 'HASH(0x10872b0)') called at /usr/lib/perl5/site_perl/5.8.5/TaskForest/Template.pm line 21 TaskForest::Template::readFile('CGI=HASH(0x1058550)', '/tst/tools/taskForest/htdocsDev/status.html', 'HASH(0x108d0d0)', 'HASH(0x10872b0)') called at /tst/tools/taskForest/bin/taskforestd line 374 main::handle_one_connection('HTTP::Daemon::ClientConn=GLOB(0x1000840)') called at /tst/tools/taskForest/bin/taskforestd line 224 main::child_does('HTTP::Daemon=GLOB(0xff5650)') called at /tst/tools/taskForest/bin/taskforestd line 189 main::fork_a_child('HTTP::Daemon=GLOB(0xff5650)') called at /tst/tools/taskForest/bin/taskforestd line 144 main::main() called at /tst/tools/taskForest/bin/taskforestd line 129 </pre> Teresia Arthur Software Developer 5 Software Quality Tools and Infrastructure Planning, Operations and Strategy SAS Institute |
From: Aijaz A. <en...@us...> - 2009-05-19 00:42:22
|
Hello again: There was a minor bug in version 1.25. The source file Calendar.pm erroneously included a dependency on the perl module Date::Calc. While Date::Calc is a great module, TaskForest does not need it. The dependency should not have been there. I didn't notice it in my testing because I already have Date::Calc installed on my dev machine and on my prod machines as well. If you don't have Date::Calc installed, the "make test" part of the TaskForest install will fail. I have removed the one offending line from Calendar.pm and re-released TaskForest as version 1.26. Sorry for the inconvenience. The new version (version 1.26) is now available on SourceForge, and should be available on CPAN shortly. Thanks, Aijaz. |
From: Aijaz A. <en...@us...> - 2009-05-18 03:21:47
|
Hello: TaskForest 1.25 is now available. The major enhancement in this release is the inclusion of calendars. A calendar is a set of rules that defines on what days a job may run. Each rule can may or may not conclusively determine whether or not a Family should run today. The rules are evaluated in the order in which they are specified. The last rule that conclusively determines whether of not a Family should run wins, in the case of conflicting rules. If none of the rules is conclusive, then the Family will not run today. You can set rules to specify certain dates or ranges of dates, or specific days, like "third friday of every month." I've also added a new FAQ page to the website: http://www.taskforest.com/ Thanks, Aijaz |
From: Aijaz A. <en...@us...> - 2009-05-05 15:09:07
|
Lana: I've modified the test suite to include some tests on this issue. There's a job that's scheduled to run every hour on the hour. If the family in which this job is scheduled uses a time zone that observes Daylight Saving Time, the following happens: On the day that DST starts, that job runs 23 times, because there are only 23 hours in that day. On the day that DST ends, the job runs 25 times, because there are 25 hours in that day. If the family uses GMT, the job always runs exactly 24 times, even on the days during which DST starts or ends. Thanks for bringing this up (and thereby prompting me to add these tests). Aijaz. On Tue, Apr 28, 2009 at 3:02 PM, Aijaz Ansari <en...@us...>wrote: > Lana: > > GMT ISSUES > As of version 1.24, there's an undocumented way to fool taskforest into > thinking the current time is whatever you tell it. I use it for testing. > I'll test out your GMT questions, but I'm almost certain that GMT is immune > to any DST issues, since it doesn't have DST. This also means that you'll > have exactly 24 hours in every day, and not 23 hours 1 day a year and 25 > another day. I'm 99% sure, but I'll run tests and let you know. Thanks for > bringing this up. This should be a test. > > |
From: Aijaz A. <aij...@gm...> - 2009-04-29 03:46:18
|
Lana: The second instance of J4() in the family isn't a call to J4. Technically, neither is the first. Don't think of J1() and J4() as calls (like function calls in code) but instead think of them as nodes in a graph. In the family below J4() will *never* run unless J1() is run successfully. J1(), in turn will *never* run unless both J2() and J3() have both run. Since J3() won't run before 3:00, J4 will not run until some time after 3:00. J4 will not kick off. The order of the sections (separated by dashed lines) does not imply an order of execution. The sections are only there to indicate that these jobs on the next line don't depend on the jobs on the previous line because of the line of dashes. No matter how long J3 runs, J4 will only run once, and only after J1 (and therefore only after J3) has run. I don't know if I'm explaining this well.. Please let me know if any of this doesn't make sense. Thanks, Aijaz. On Tue, Apr 28, 2009 at 5:02 PM, Svetlana Lemeshov <lem...@mi...> wrote: > Thank you Aijaz! > > This is a good news about multiple calls to a job within a family! > > However, I see a potentially problematic situation with your example. > I stumbled on it while trying to model our test Family. Here is an example: > > Again, let's look at job J4 that shows up twice. > > start => '00:00', tz => 'America/Chicago', days => > 'Mon,Tue,Wed,Thu,Fri,Sat,Sun' > > J2() J3(start=>'3:00') > J1() > J4() > J12() J13() > > -------------------------------------------------------------------------------- > J6() J7() > J5() > > -------------------------------------------------------------------------------- > J5() J4() > J8() > > -------------------------------------------------------------------------------- > > For example J3(), is an extraction job that populates input file for J4() > and can't run before certain time (ex.3:00AM). It will be sitting > waiting for an > input file, while the second call to J4() will actually kick in at 00:00 > without an input file and die with exit 1 right away. It may cause an > undesirable effect. > > Actually, even if J3() does not have a specific start time, we still can > run > into a messy situation... > When in your example J4() is called for the second time just to have its > status checked, you ASSUME that it has already 'ran'. > BUT if prerequisite jobs (J2, J3 and J1) are happen to be LONG running > jobs.... > then the second ('status checking') occurrence of J4() will trigger the > execution BEFORE the first occurrence! > > I am sure that this can somehow be handled. But these are kind of little > 'challenges' that I am stumbling on while working on a test scenario > involving > 5-6 jobs. Given that our crontab file currently has over 1000 > entries... I think > I will be done in a couple of years :) > > Thank you very much for all your help! > > Talk to you soon! > > Lana > > > > > Quoting tas...@li...: > > > Send Taskforest-discuss mailing list submissions to > > tas...@li... > > > > To subscribe or unsubscribe via the World Wide Web, visit > > https://lists.sourceforge.net/lists/listinfo/taskforest-discuss > > or, via email, send a message with subject or body 'help' to > > tas...@li... > > > > You can reach the person managing the list at > > tas...@li... > > > > When replying, please edit your Subject line so it is more specific > > than "Re: Contents of Taskforest-discuss digest..." > > > > > > Today's Topics: > > > > 1. Fwd: Looking for TaskForest USERS!!! (Aijaz Ansari) > > 2. TaskForest 1.24 to be released this weekend. (Aijaz Ansari) > > 3. TaskForest 1.24 is now available (Aijaz Ansari) > > 4. Some additional questions about TaskForest (Svetlana Lemeshov) > > 5. Re: Some additional questions about TaskForest (Aijaz Ansari) > > > > > > ---------------------------------------------------------------------- > > > > Message: 1 > > Date: Sat, 18 Apr 2009 16:45:02 -0500 > > From: Aijaz Ansari <en...@us...> > > Subject: [Taskforest-discuss] Fwd: Looking for TaskForest USERS!!! > > To: tas...@li... > > Message-ID: > > <dc3...@ma...> > > Content-Type: text/plain; charset="iso-8859-1" > > > > Lana: > > > > Some more comments about calendars and Family dependencies: > > > > The next major release of TaskForest after the one currently in > development > > (Tokens) will support Calendars. You'll be able to associate a Family > with > > a calendar date file, which is essentially a list of all dates in the > year > > on which this Family will run, or you could use expressions that evaluate > to > > one or more dates. For example: > > > > 1. Last Friday of every month > > 2. Every July 4th, etc. > > > > You could also apply binary operators like AND, OR, and EXCLUSIVE OR to > > calendars to come up with custom calendars. > > > > I expect this version to come out in May, 2009. > > > > Now for dependencies between families: > > > > I think I can do what you described by including some syntax that refers > to > > jobs in other families. If Family F1 has job J1, and family F2 has job > J2, > > we could make J2 depend on J1 using syntax similar to this in F2: > > > > F1::J1() > > J2() # J2 will only run after J1 in F1 runs. > > > > This is not supported yet, but it should be pretty easy to implement. > It's > > a good idea and I'll let you know what I find out in a day or two. > > > > Thanks, > > > > Aijaz. > > -------------- next part -------------- > > An HTML attachment was scrubbed... > > > > ------------------------------ > > > > Message: 2 > > Date: Thu, 23 Apr 2009 09:48:20 -0500 > > From: Aijaz Ansari <en...@us...> > > Subject: [Taskforest-discuss] TaskForest 1.24 to be released this > > weekend. > > To: tas...@li... > > Message-ID: > > <dc3...@ma...> > > Content-Type: text/plain; charset="iso-8859-1" > > > > Hello: > > > > I just wanted to let you all know that the latest version of TaskForest > will > > be released this Sunday. It includes support for tokens as well as > better > > support for families with foreign time zones. I will spend the next few > > days running it on my prod boxes and completing the documentation before > the > > release. > > > > Thanks, > > > > Aijaz. > > -------------- next part -------------- > > An HTML attachment was scrubbed... > > > > ------------------------------ > > > > Message: 3 > > Date: Sun, 26 Apr 2009 23:49:06 -0500 > > From: Aijaz Ansari <en...@us...> > > Subject: [Taskforest-discuss] TaskForest 1.24 is now available > > To: tas...@li..., > > tas...@li... > > Message-ID: > > <dc3...@ma...> > > Content-Type: text/plain; charset="iso-8859-1" > > > > TaskForest version 1.24 is now available. Please visit > > http://www.taskforest.com for the most recent documentation as well as > > instructions on how to download the software. > > > > This release introduces the concept of tokens. A token is a new kind of > > dependency. If a job depends on a token, it must acquire a free token > > before it can run, or wait for another job to release a token after > > completion. Since there is a finite set of tokens, you can use tokens to > > prevent too many jobs from running at the same time. > > > > For example, if there are 20 jobs that rely on token T, but only 5 > instances > > of the token, only a maximum of 5 of those jobs may run at the same time. > > > > This release also formalizes the way Families with foreign time zones are > > handled. This allows you to 'time shift' your family, essentially > allowing > > your family to run for 24 hours in a later timezone. This shifts the end > of > > day towads the end of the family's running time. > > > > Thanks, > > > > Aijaz > > -------------- next part -------------- > > An HTML attachment was scrubbed... > > > > ------------------------------ > > > > Message: 4 > > Date: Tue, 28 Apr 2009 14:34:48 -0400 > > From: Svetlana Lemeshov <lem...@MI...> > > Subject: [Taskforest-discuss] Some additional questions about > > TaskForest > > To: tas...@li... > > Message-ID: <200...@we...> > > Content-Type: text/plain; charset=ISO-8859-1 > > > > Hello Aijaz, > > > > We are currently using crontab and we face some issues related to the > > daylight > > time saving change: > > - in one case some jobs may run twice (scheduled to run between 2AM and > 3AM) > > - while in another they do not run at all. > > > > We manually take care of these situations. > > > > So, I wonder how TaskForest handles time changes with GMT option. > > > > Aijaz, can you please give me some information about implementation of > > the Calendars in the future releases of the TaskForest? > > > > When do you anticipate it to be in production? > > > > Here are some questions (if you don't mind): > > - Is there a way to turn off 'Days of the week' from the Family all > together? > > I am contemplating to run TaskForest from the crontab to have more > > control and > > flexibility with the schedule. > > > > - What happens when the same job gets called within a family multiple > > times? I > > DO understand that it will get executed only once, but after that, can I > keep > > calling the same job from different parts of the Family just to check its > > status? I can see it to be useful in cases when a chain of dependant jobs > > can't be easily layed out with a straightforward top down design. > > > > It is probably confusing and I should send you an example to illustrate > > my question. > > > > I spent some time setting a simple test family, but I feel that > > its current layout still does not reflect what I want it to do. > > > > I find that a single example of the 'Forest' in TaskForest documentation > > is too basic to demonstrate how to handle even a little more complex > > dependencies. > > > > > > Thank you very much! > > > > Lana > > > > > > > > ------------------------------ > > > > Message: 5 > > Date: Tue, 28 Apr 2009 15:02:11 -0500 > > From: Aijaz Ansari <en...@us...> > > Subject: Re: [Taskforest-discuss] Some additional questions about > > TaskForest > > To: tas...@li... > > Message-ID: > > <dc3...@ma...> > > Content-Type: text/plain; charset="iso-8859-1" > > > > Lana: > > > > GMT ISSUES > > As of version 1.24, there's an undocumented way to fool taskforest into > > thinking the current time is whatever you tell it. I use it for testing. > > I'll test out your GMT questions, but I'm almost certain that GMT is > immune > > to any DST issues, since it doesn't have DST. This also means that > you'll > > have exactly 24 hours in every day, and not 23 hours 1 day a year and 25 > > another day. I'm 99% sure, but I'll run tests and let you know. Thanks > for > > bringing this up. This should be a test. > > > > CALENDARS > > The calendar code is currently in Dev. I hope to have it released in > > version 1.25 on May 17. Because I want the code to be backward > compatible > > with older family files, Family files will accept either the current > "days > > => 'Mon,Tue'" format or the new "calendar => CAL_NAME" format. > > CAL_NAME is a name of a calendar that will be defined in the config file. > > A calendar is basically a set of instructions that include or exclude > days. > > Here are some examples: > > > > Example 1) > > + 2009/04/24 > > > > Familes that use this calendar will run only once. On Apr 24, 2009 only. > > > ---------------------------------------------------------------------------------------------------------- > > Example 2) > > + 2009/*/* > > - 2009/01/01 > > > > Families that use this calendar will run every day in 2009, except for > New > > Years Day. > > > ------------------------------------------------------------------------------------------------------------ > > Example 3) > > + */*/* > > - fourth Thu */11 > > > > Families that use this calendar will run every day of every month of > every > > year, except for the fourth Thursday of November of each year (U.S. > > Thanksgiving day) > > > --------------------------------------------------------------------------------------------------------------- > > Example 4) > > + second last Sunday */*/* > > > > Families that use this calendar will run on the second-to-last Sunday of > > every month. > > > > Using calendars like this might be the better than relying on cron's > > scheduling. It depends on what exactly you're trying to do. If you have > > specific scheduling needs, let me know, and I'll tell you if and how you > > could configure taskforest to meet that schedule. > > > > Again, I expect this to be in version 1.25 in mid-May. > > > > MULTIPLE INSTANCES OF JOBS IN THE FAMILY FILE > > ---------------------------------------------------------------------- > > Yes, you can have multiple instances of jobs in a family file, to check > on > > status. There are certain cases, where you *cannot* properly model > > dependencies unless you have multiple instances like this. One of the > test > > Family files that's included in the distribution (the one wrongly named > > "t/family_archive/SIMPLE") has this scenario. Look at job J4. It shows > up > > twice. I'm copying the Family file here for your reference: > > > > start => '00:00', tz => 'America/Chicago', days => > > 'Mon,Tue,Wed,Thu,Fri,Sat,Sun' > > J2() J3() > > J1() > > J4() > > J12() J13() > > > -------------------------------------------------------------------------------- > > J6() J7() > > J5() > > > -------------------------------------------------------------------------------- > > J5() J4() > > J8() > > > -------------------------------------------------------------------------------- > > J9() > > J10() > > J11() > > > > So yes, you can, and in many cases should repeat job names in the family > > file. I hope I've answered your questions well. Pls let me know if you > > have any other questions. > > > > Thanks, > > > > Aijaz. > > > > > > On Tue, Apr 28, 2009 at 1:34 PM, Svetlana Lemeshov <lem...@mi...> > wrote: > > > >> Hello Aijaz, > >> > >> ... > >> So, I wonder how TaskForest handles time changes with GMT option. > >> > >> Aijaz, can you please give me some information about implementation of > >> the Calendars in the future releases of the TaskForest? > >> > >> When do you anticipate it to be in production? > >> > >> Here are some questions (if you don't mind): > >> - Is there a way to turn off 'Days of the week' from the Family all > >> together? > >> I am contemplating to run TaskForest from the crontab to have more > control > >> and > >> flexibility with the schedule. > >> > >> - What happens when the same job gets called within a family multiple > >> times? I > >> DO understand that it will get executed only once, but after that, can I > >> keep > >> calling the same job from different parts of the Family just to check > its > >> status? I can see it to be useful in cases when a chain of dependant > jobs > >> can't be easily layed out with a straightforward top down design. > >> > >> ... > >> > >> > > -------------- next part -------------- > > An HTML attachment was scrubbed... > > > > ------------------------------ > > > > > ------------------------------------------------------------------------------ > > Register Now & Save for Velocity, the Web Performance & Operations > > Conference from O'Reilly Media. Velocity features a full day of > > expert-led, hands-on workshops and two days of sessions from industry > > leaders in dedicated Performance & Operations tracks. Use code vel09scf > > and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf > > > > ------------------------------ > > > > _______________________________________________ > > Taskforest-discuss mailing list > > Tas...@li... > > https://lists.sourceforge.net/lists/listinfo/taskforest-discuss > > > > > > End of Taskforest-discuss Digest, Vol 2, Issue 3 > > ************************************************ > > > > > > > ------------------------------------------------------------------------------ > Register Now & Save for Velocity, the Web Performance & Operations > Conference from O'Reilly Media. Velocity features a full day of > expert-led, hands-on workshops and two days of sessions from industry > leaders in dedicated Performance & Operations tracks. Use code vel09scf > and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf > _______________________________________________ > Taskforest-discuss mailing list > Tas...@li... > https://lists.sourceforge.net/lists/listinfo/taskforest-discuss > |
From: Svetlana L. <lem...@MI...> - 2009-04-28 22:03:23
|
Thank you Aijaz! This is a good news about multiple calls to a job within a family! However, I see a potentially problematic situation with your example. I stumbled on it while trying to model our test Family. Here is an example: Again, let's look at job J4 that shows up twice. start => '00:00', tz => 'America/Chicago', days => 'Mon,Tue,Wed,Thu,Fri,Sat,Sun' J2() J3(start=>'3:00') J1() J4() J12() J13() -------------------------------------------------------------------------------- J6() J7() J5() -------------------------------------------------------------------------------- J5() J4() J8() -------------------------------------------------------------------------------- For example J3(), is an extraction job that populates input file for J4() and can't run before certain time (ex.3:00AM). It will be sitting waiting for an input file, while the second call to J4() will actually kick in at 00:00 without an input file and die with exit 1 right away. It may cause an undesirable effect. Actually, even if J3() does not have a specific start time, we still can run into a messy situation... When in your example J4() is called for the second time just to have its status checked, you ASSUME that it has already 'ran'. BUT if prerequisite jobs (J2, J3 and J1) are happen to be LONG running jobs.... then the second ('status checking') occurrence of J4() will trigger the execution BEFORE the first occurrence! I am sure that this can somehow be handled. But these are kind of little 'challenges' that I am stumbling on while working on a test scenario involving 5-6 jobs. Given that our crontab file currently has over 1000 entries... I think I will be done in a couple of years :) Thank you very much for all your help! Talk to you soon! Lana > Quoting tas...@li...: > Send Taskforest-discuss mailing list submissions to > tas...@li... > > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.sourceforge.net/lists/listinfo/taskforest-discuss > or, via email, send a message with subject or body 'help' to > tas...@li... > > You can reach the person managing the list at > tas...@li... > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Taskforest-discuss digest..." > > > Today's Topics: > > 1. Fwd: Looking for TaskForest USERS!!! (Aijaz Ansari) > 2. TaskForest 1.24 to be released this weekend. (Aijaz Ansari) > 3. TaskForest 1.24 is now available (Aijaz Ansari) > 4. Some additional questions about TaskForest (Svetlana Lemeshov) > 5. Re: Some additional questions about TaskForest (Aijaz Ansari) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Sat, 18 Apr 2009 16:45:02 -0500 > From: Aijaz Ansari <en...@us...> > Subject: [Taskforest-discuss] Fwd: Looking for TaskForest USERS!!! > To: tas...@li... > Message-ID: > <dc3...@ma...> > Content-Type: text/plain; charset="iso-8859-1" > > Lana: > > Some more comments about calendars and Family dependencies: > > The next major release of TaskForest after the one currently in development > (Tokens) will support Calendars. You'll be able to associate a Family with > a calendar date file, which is essentially a list of all dates in the year > on which this Family will run, or you could use expressions that evaluate to > one or more dates. For example: > > 1. Last Friday of every month > 2. Every July 4th, etc. > > You could also apply binary operators like AND, OR, and EXCLUSIVE OR to > calendars to come up with custom calendars. > > I expect this version to come out in May, 2009. > > Now for dependencies between families: > > I think I can do what you described by including some syntax that refers to > jobs in other families. If Family F1 has job J1, and family F2 has job J2, > we could make J2 depend on J1 using syntax similar to this in F2: > > F1::J1() > J2() # J2 will only run after J1 in F1 runs. > > This is not supported yet, but it should be pretty easy to implement. It's > a good idea and I'll let you know what I find out in a day or two. > > Thanks, > > Aijaz. > -------------- next part -------------- > An HTML attachment was scrubbed... > > ------------------------------ > > Message: 2 > Date: Thu, 23 Apr 2009 09:48:20 -0500 > From: Aijaz Ansari <en...@us...> > Subject: [Taskforest-discuss] TaskForest 1.24 to be released this > weekend. > To: tas...@li... > Message-ID: > <dc3...@ma...> > Content-Type: text/plain; charset="iso-8859-1" > > Hello: > > I just wanted to let you all know that the latest version of TaskForest will > be released this Sunday. It includes support for tokens as well as better > support for families with foreign time zones. I will spend the next few > days running it on my prod boxes and completing the documentation before the > release. > > Thanks, > > Aijaz. > -------------- next part -------------- > An HTML attachment was scrubbed... > > ------------------------------ > > Message: 3 > Date: Sun, 26 Apr 2009 23:49:06 -0500 > From: Aijaz Ansari <en...@us...> > Subject: [Taskforest-discuss] TaskForest 1.24 is now available > To: tas...@li..., > tas...@li... > Message-ID: > <dc3...@ma...> > Content-Type: text/plain; charset="iso-8859-1" > > TaskForest version 1.24 is now available. Please visit > http://www.taskforest.com for the most recent documentation as well as > instructions on how to download the software. > > This release introduces the concept of tokens. A token is a new kind of > dependency. If a job depends on a token, it must acquire a free token > before it can run, or wait for another job to release a token after > completion. Since there is a finite set of tokens, you can use tokens to > prevent too many jobs from running at the same time. > > For example, if there are 20 jobs that rely on token T, but only 5 instances > of the token, only a maximum of 5 of those jobs may run at the same time. > > This release also formalizes the way Families with foreign time zones are > handled. This allows you to 'time shift' your family, essentially allowing > your family to run for 24 hours in a later timezone. This shifts the end of > day towads the end of the family's running time. > > Thanks, > > Aijaz > -------------- next part -------------- > An HTML attachment was scrubbed... > > ------------------------------ > > Message: 4 > Date: Tue, 28 Apr 2009 14:34:48 -0400 > From: Svetlana Lemeshov <lem...@MI...> > Subject: [Taskforest-discuss] Some additional questions about > TaskForest > To: tas...@li... > Message-ID: <200...@we...> > Content-Type: text/plain; charset=ISO-8859-1 > > Hello Aijaz, > > We are currently using crontab and we face some issues related to the > daylight > time saving change: > - in one case some jobs may run twice (scheduled to run between 2AM and 3AM) > - while in another they do not run at all. > > We manually take care of these situations. > > So, I wonder how TaskForest handles time changes with GMT option. > > Aijaz, can you please give me some information about implementation of > the Calendars in the future releases of the TaskForest? > > When do you anticipate it to be in production? > > Here are some questions (if you don't mind): > - Is there a way to turn off 'Days of the week' from the Family all together? > I am contemplating to run TaskForest from the crontab to have more > control and > flexibility with the schedule. > > - What happens when the same job gets called within a family multiple > times? I > DO understand that it will get executed only once, but after that, can I keep > calling the same job from different parts of the Family just to check its > status? I can see it to be useful in cases when a chain of dependant jobs > can't be easily layed out with a straightforward top down design. > > It is probably confusing and I should send you an example to illustrate > my question. > > I spent some time setting a simple test family, but I feel that > its current layout still does not reflect what I want it to do. > > I find that a single example of the 'Forest' in TaskForest documentation > is too basic to demonstrate how to handle even a little more complex > dependencies. > > > Thank you very much! > > Lana > > > > ------------------------------ > > Message: 5 > Date: Tue, 28 Apr 2009 15:02:11 -0500 > From: Aijaz Ansari <en...@us...> > Subject: Re: [Taskforest-discuss] Some additional questions about > TaskForest > To: tas...@li... > Message-ID: > <dc3...@ma...> > Content-Type: text/plain; charset="iso-8859-1" > > Lana: > > GMT ISSUES > As of version 1.24, there's an undocumented way to fool taskforest into > thinking the current time is whatever you tell it. I use it for testing. > I'll test out your GMT questions, but I'm almost certain that GMT is immune > to any DST issues, since it doesn't have DST. This also means that you'll > have exactly 24 hours in every day, and not 23 hours 1 day a year and 25 > another day. I'm 99% sure, but I'll run tests and let you know. Thanks for > bringing this up. This should be a test. > > CALENDARS > The calendar code is currently in Dev. I hope to have it released in > version 1.25 on May 17. Because I want the code to be backward compatible > with older family files, Family files will accept either the current "days > => 'Mon,Tue'" format or the new "calendar => CAL_NAME" format. > CAL_NAME is a name of a calendar that will be defined in the config file. > A calendar is basically a set of instructions that include or exclude days. > Here are some examples: > > Example 1) > + 2009/04/24 > > Familes that use this calendar will run only once. On Apr 24, 2009 only. > ---------------------------------------------------------------------------------------------------------- > Example 2) > + 2009/*/* > - 2009/01/01 > > Families that use this calendar will run every day in 2009, except for New > Years Day. > ------------------------------------------------------------------------------------------------------------ > Example 3) > + */*/* > - fourth Thu */11 > > Families that use this calendar will run every day of every month of every > year, except for the fourth Thursday of November of each year (U.S. > Thanksgiving day) > --------------------------------------------------------------------------------------------------------------- > Example 4) > + second last Sunday */*/* > > Families that use this calendar will run on the second-to-last Sunday of > every month. > > Using calendars like this might be the better than relying on cron's > scheduling. It depends on what exactly you're trying to do. If you have > specific scheduling needs, let me know, and I'll tell you if and how you > could configure taskforest to meet that schedule. > > Again, I expect this to be in version 1.25 in mid-May. > > MULTIPLE INSTANCES OF JOBS IN THE FAMILY FILE > ---------------------------------------------------------------------- > Yes, you can have multiple instances of jobs in a family file, to check on > status. There are certain cases, where you *cannot* properly model > dependencies unless you have multiple instances like this. One of the test > Family files that's included in the distribution (the one wrongly named > "t/family_archive/SIMPLE") has this scenario. Look at job J4. It shows up > twice. I'm copying the Family file here for your reference: > > start => '00:00', tz => 'America/Chicago', days => > 'Mon,Tue,Wed,Thu,Fri,Sat,Sun' > J2() J3() > J1() > J4() > J12() J13() > -------------------------------------------------------------------------------- > J6() J7() > J5() > -------------------------------------------------------------------------------- > J5() J4() > J8() > -------------------------------------------------------------------------------- > J9() > J10() > J11() > > So yes, you can, and in many cases should repeat job names in the family > file. I hope I've answered your questions well. Pls let me know if you > have any other questions. > > Thanks, > > Aijaz. > > > On Tue, Apr 28, 2009 at 1:34 PM, Svetlana Lemeshov <lem...@mi...> wrote: > >> Hello Aijaz, >> >> ... >> So, I wonder how TaskForest handles time changes with GMT option. >> >> Aijaz, can you please give me some information about implementation of >> the Calendars in the future releases of the TaskForest? >> >> When do you anticipate it to be in production? >> >> Here are some questions (if you don't mind): >> - Is there a way to turn off 'Days of the week' from the Family all >> together? >> I am contemplating to run TaskForest from the crontab to have more control >> and >> flexibility with the schedule. >> >> - What happens when the same job gets called within a family multiple >> times? I >> DO understand that it will get executed only once, but after that, can I >> keep >> calling the same job from different parts of the Family just to check its >> status? I can see it to be useful in cases when a chain of dependant jobs >> can't be easily layed out with a straightforward top down design. >> >> ... >> >> > -------------- next part -------------- > An HTML attachment was scrubbed... > > ------------------------------ > > ------------------------------------------------------------------------------ > Register Now & Save for Velocity, the Web Performance & Operations > Conference from O'Reilly Media. Velocity features a full day of > expert-led, hands-on workshops and two days of sessions from industry > leaders in dedicated Performance & Operations tracks. Use code vel09scf > and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf > > ------------------------------ > > _______________________________________________ > Taskforest-discuss mailing list > Tas...@li... > https://lists.sourceforge.net/lists/listinfo/taskforest-discuss > > > End of Taskforest-discuss Digest, Vol 2, Issue 3 > ************************************************ > |
From: Aijaz A. <en...@us...> - 2009-04-28 20:02:36
|
Lana: GMT ISSUES As of version 1.24, there's an undocumented way to fool taskforest into thinking the current time is whatever you tell it. I use it for testing. I'll test out your GMT questions, but I'm almost certain that GMT is immune to any DST issues, since it doesn't have DST. This also means that you'll have exactly 24 hours in every day, and not 23 hours 1 day a year and 25 another day. I'm 99% sure, but I'll run tests and let you know. Thanks for bringing this up. This should be a test. CALENDARS The calendar code is currently in Dev. I hope to have it released in version 1.25 on May 17. Because I want the code to be backward compatible with older family files, Family files will accept either the current "days => 'Mon,Tue'" format or the new "calendar => CAL_NAME" format. CAL_NAME is a name of a calendar that will be defined in the config file. A calendar is basically a set of instructions that include or exclude days. Here are some examples: Example 1) + 2009/04/24 Familes that use this calendar will run only once. On Apr 24, 2009 only. ---------------------------------------------------------------------------------------------------------- Example 2) + 2009/*/* - 2009/01/01 Families that use this calendar will run every day in 2009, except for New Years Day. ------------------------------------------------------------------------------------------------------------ Example 3) + */*/* - fourth Thu */11 Families that use this calendar will run every day of every month of every year, except for the fourth Thursday of November of each year (U.S. Thanksgiving day) --------------------------------------------------------------------------------------------------------------- Example 4) + second last Sunday */*/* Families that use this calendar will run on the second-to-last Sunday of every month. Using calendars like this might be the better than relying on cron's scheduling. It depends on what exactly you're trying to do. If you have specific scheduling needs, let me know, and I'll tell you if and how you could configure taskforest to meet that schedule. Again, I expect this to be in version 1.25 in mid-May. MULTIPLE INSTANCES OF JOBS IN THE FAMILY FILE ---------------------------------------------------------------------- Yes, you can have multiple instances of jobs in a family file, to check on status. There are certain cases, where you *cannot* properly model dependencies unless you have multiple instances like this. One of the test Family files that's included in the distribution (the one wrongly named "t/family_archive/SIMPLE") has this scenario. Look at job J4. It shows up twice. I'm copying the Family file here for your reference: start => '00:00', tz => 'America/Chicago', days => 'Mon,Tue,Wed,Thu,Fri,Sat,Sun' J2() J3() J1() J4() J12() J13() -------------------------------------------------------------------------------- J6() J7() J5() -------------------------------------------------------------------------------- J5() J4() J8() -------------------------------------------------------------------------------- J9() J10() J11() So yes, you can, and in many cases should repeat job names in the family file. I hope I've answered your questions well. Pls let me know if you have any other questions. Thanks, Aijaz. On Tue, Apr 28, 2009 at 1:34 PM, Svetlana Lemeshov <lem...@mi...> wrote: > Hello Aijaz, > > ... > So, I wonder how TaskForest handles time changes with GMT option. > > Aijaz, can you please give me some information about implementation of > the Calendars in the future releases of the TaskForest? > > When do you anticipate it to be in production? > > Here are some questions (if you don't mind): > - Is there a way to turn off 'Days of the week' from the Family all > together? > I am contemplating to run TaskForest from the crontab to have more control > and > flexibility with the schedule. > > - What happens when the same job gets called within a family multiple > times? I > DO understand that it will get executed only once, but after that, can I > keep > calling the same job from different parts of the Family just to check its > status? I can see it to be useful in cases when a chain of dependant jobs > can't be easily layed out with a straightforward top down design. > > ... > > |
From: Svetlana L. <lem...@MI...> - 2009-04-28 18:35:13
|
Hello Aijaz, We are currently using crontab and we face some issues related to the daylight time saving change: - in one case some jobs may run twice (scheduled to run between 2AM and 3AM) - while in another they do not run at all. We manually take care of these situations. So, I wonder how TaskForest handles time changes with GMT option. Aijaz, can you please give me some information about implementation of the Calendars in the future releases of the TaskForest? When do you anticipate it to be in production? Here are some questions (if you don't mind): - Is there a way to turn off 'Days of the week' from the Family all together? I am contemplating to run TaskForest from the crontab to have more control and flexibility with the schedule. - What happens when the same job gets called within a family multiple times? I DO understand that it will get executed only once, but after that, can I keep calling the same job from different parts of the Family just to check its status? I can see it to be useful in cases when a chain of dependant jobs can't be easily layed out with a straightforward top down design. It is probably confusing and I should send you an example to illustrate my question. I spent some time setting a simple test family, but I feel that its current layout still does not reflect what I want it to do. I find that a single example of the 'Forest' in TaskForest documentation is too basic to demonstrate how to handle even a little more complex dependencies. Thank you very much! Lana |
From: Aijaz A. <en...@us...> - 2009-04-27 04:49:24
|
TaskForest version 1.24 is now available. Please visit http://www.taskforest.com for the most recent documentation as well as instructions on how to download the software. This release introduces the concept of tokens. A token is a new kind of dependency. If a job depends on a token, it must acquire a free token before it can run, or wait for another job to release a token after completion. Since there is a finite set of tokens, you can use tokens to prevent too many jobs from running at the same time. For example, if there are 20 jobs that rely on token T, but only 5 instances of the token, only a maximum of 5 of those jobs may run at the same time. This release also formalizes the way Families with foreign time zones are handled. This allows you to 'time shift' your family, essentially allowing your family to run for 24 hours in a later timezone. This shifts the end of day towads the end of the family's running time. Thanks, Aijaz |
From: Aijaz A. <en...@us...> - 2009-04-23 14:48:53
|
Hello: I just wanted to let you all know that the latest version of TaskForest will be released this Sunday. It includes support for tokens as well as better support for families with foreign time zones. I will spend the next few days running it on my prod boxes and completing the documentation before the release. Thanks, Aijaz. |
From: Aijaz A. <en...@us...> - 2009-04-18 21:45:33
|
Lana: Some more comments about calendars and Family dependencies: The next major release of TaskForest after the one currently in development (Tokens) will support Calendars. You'll be able to associate a Family with a calendar date file, which is essentially a list of all dates in the year on which this Family will run, or you could use expressions that evaluate to one or more dates. For example: 1. Last Friday of every month 2. Every July 4th, etc. You could also apply binary operators like AND, OR, and EXCLUSIVE OR to calendars to come up with custom calendars. I expect this version to come out in May, 2009. Now for dependencies between families: I think I can do what you described by including some syntax that refers to jobs in other families. If Family F1 has job J1, and family F2 has job J2, we could make J2 depend on J1 using syntax similar to this in F2: F1::J1() J2() # J2 will only run after J1 in F1 runs. This is not supported yet, but it should be pretty easy to implement. It's a good idea and I'll let you know what I find out in a day or two. Thanks, Aijaz. |
From: Aijaz A. <en...@us...> - 2009-04-18 18:48:28
|
[This email has some ASCII diagrams and is best read in a fixed-width font] Lana: I've been thinking about your email and the four (5, depending on how you count them) great questions you raised: 1) Handling the midnight point 2) Calendars 3) Dependencies between Families Dependencies between Families with different schedules 4) Backward Compatibility In this email, I'll only focus on the Midnight point issue, because this will be a very long email. I'll address the other issues in a subsequent email. THE SUMMARY OF EVERYTHING THAT FOLLOWS: You can resolve the apparent problem where jobs need to run on both sides of midnight by changing the timezone of the Family. This will only work if all jobs in the family run within a 24 hour period (ignoring Daylight Savings Time, when we have 23 hours in a day once a year). THE DETAILS: Having a midnight point gives us a convenient time interval within which a run of a job is considered valid. For example, with the system as it is now, saying "job J1 has run" means that it has run *today*. If J2 depends on J1, we only have to look for successful runs of J1 today. If we don't have a known time interval, then we have to resolve the problem that occurs when jobs run for longer than 24 hours. Let's start with a simple example first. Assume that our Family file looks like this: +-------------------------------------------------------------------------------- |start => '00:00', tz => 'America/Chicago', days => 'Mon,Tue,Wed,Thu,Fri' | | J1( start=>22:00 ) | J2() +-------------------------------------------------------------------------------- Example 1: J1's run time is 5 hours. This is what happens today (Chicago) Day Time Action(s) Mon 00:00 01:00 02:00 03:00 04:00 05:00 06:00 07:00 08:00 09:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 22:00 J1 Starts 23:00 | Tue 00:00 | 01:00 | 02:00 v 03:00 J1 Ends 04:00 05:00 06:00 07:00 08:00 09:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 22:00 J1 Starts 23:00 | Wed 00:00 | 01:00 | 02:00 v 03:00 J1 Ends 04:00 So you can see that J2 never gets a chance to run! At 03:00 on Tuesday, the system checks to see if J1 has run for that day, and it hasn't. So J2 can't run for that day. Now, I could remedy this particular case with the following technique (or hack): Example 2: J1's run time is 5 hours. J2's run time is 1 hour. Change the Family File to say: +-------------------------------------------------------------------------------- | # changed the start time, time zone and days of week |start => '00:00', tz => 'GMT', days => 'Tue,Wed,Thu,Fri,Sat' | | J1( start=>03:00 ) | J2() +-------------------------------------------------------------------------------- What this does is *shift* the entire Family so that all jobs in it run on the same day in the time zone specified. My crontab entry that invokes taskforest does not need to be changed. That can stay the same. (Reply to this email if it's not clear why) Now, with the system we have today, this is what happens: (Chicago) (GMT) Day Time Day Time Action(s) Mon 00:00 Mon 05:00 01:00 06:00 02:00 07:00 03:00 08:00 04:00 09:00 05:00 11:00 06:00 12:00 07:00 13:00 08:00 14:00 09:00 15:00 11:00 16:00 12:00 17:00 13:00 18:00 14:00 19:00 15:00 20:00 16:00 21:00 17:00 22:00 18:00 23:00 19:00 Tue 00:00 20:00 01:00 21:00 02:00 22:00 03:00 J1 Starts 23:00 04:00 | Tue 00:00 05:00 | 01:00 06:00 | 02:00 07:00 v 03:00 08:00 J1 Ends, J2 Starts 04:00 09:00 J2 Ends 05:00 11:00 06:00 12:00 07:00 13:00 08:00 14:00 09:00 15:00 11:00 16:00 12:00 17:00 13:00 18:00 14:00 19:00 15:00 20:00 16:00 21:00 17:00 22:00 18:00 23:00 19:00 Wed 00:00 20:00 01:00 21:00 02:00 22:00 03:00 J1 Starts 23:00 04:00 | Wed 00:00 05:00 | 01:00 06:00 | 02:00 07:00 v 03:00 08:00 J1 Ends, J2 Starts 04:00 09:00 J2 Ends 05:00 10:00 Shifting the start/end of the days by changing the timezones has fixed this problem. J1 still starts at 22:00 Chicago time, and J2 will still run if J1 runs successfully. Lana, if the jobs in your Family files run in less than 24 hours, you can use this method now. However, this is not a universal solution. What happens if J1's run time is 26 hours? Even with the family as shown in Example 2, J1 ends the day after it started. This means that J2 will never run, no matter what we set the timezone to be. This is because no matter what day it is, *today's* run of J1 will never have completed that day. So the current version of taskforest does not support Family files whose jobs run for more than 24 hours from the start of the first job to the end of the last job, even if each individual job runs for less than 24 hours. Example 3: J1 runs for 25 hours (Chicago) (GMT) Day Time Day Time Action(s) Mon 00:00 Mon 05:00 01:00 06:00 02:00 07:00 03:00 08:00 04:00 09:00 05:00 11:00 06:00 12:00 07:00 13:00 08:00 14:00 09:00 15:00 11:00 16:00 12:00 17:00 13:00 18:00 14:00 19:00 15:00 20:00 16:00 21:00 17:00 22:00 18:00 23:00 19:00 Tue 00:00 20:00 01:00 21:00 02:00 22:00 03:00 J1 Starts 23:00 04:00 | Tue 00:00 05:00 | 01:00 06:00 | 02:00 07:00 | 03:00 08:00 | 04:00 09:00 | 05:00 11:00 | 06:00 12:00 | 07:00 13:00 | 08:00 14:00 | 09:00 15:00 | 11:00 16:00 | 12:00 17:00 | 13:00 18:00 | 14:00 19:00 | 15:00 20:00 | 16:00 21:00 | 17:00 22:00 | 18:00 23:00 | 19:00 Wed 00:00 | 20:00 01:00 | 21:00 02:00 | 22:00 03:00 | J1 Starts 23:00 04:00 v | Wed 00:00 05:00 J1 Ends | 01:00 06:00 | 02:00 07:00 | 03:00 08:00 | 04:00 09:00 | 05:00 10:00 | The other thing we're seeing here is that now we have 2 instances of J1 running simultaneously (for 2 hours), even though that is not the intent of the Family file. This could be a major problem. J2 never runs. I can't think of a foolproof way to resolve this. If we implement rules that require a family to 'complete' all of the previous day's jobs until it can run no more - because all jobs have completed successfully. I don't know if this is a satisfactory approach or not. This means that J1's start times will be as follows: Mon: 22:00 Wed: 00:00 On Tuesday we don't run the Family, because Monday's run hasn't completed. That's fine. But what about Wednesday? With this definition, Wednesday will never run as well because Tuesday's run never completed (there wasn't a run on Tuesday). So the system has to be smart about that and realize that. And that's fine, until you change the family on Tuesday to run a new job J3 after J2. Then, the system needs to know on Wednesday not to wait for look for a successful run of J3 for Monday's run (because J3 didn't exist on Monday). Which means that the system needs to know your change control history. Which is a whole other problem. Do you folks see any elegant way to resolve this? Aijaz On Sat, Apr 18, 2009 at 12:15 PM, Aijaz Ansari <en...@us...>wrote: > Forwarded to the Taskforest-discuss mailing list with the original author's > permission: > > ---------- Forwarded message ---------- > From: Aijaz Ansari <en...@us...> > Date: Fri, Apr 17, 2009 at 1:48 PM > Subject: Re: [Taskforest-discuss] Looking for TaskForest USERS!!! > To: Svetlana Lemeshov <lem...@mi...> > > > Lana: > > Thanks for your email. These are excellent points. I'll give you a quick > response now (as I'll be leaving my desk soon), and a more detailed one > tomorrow. > > In a nutshell - > > a) You're right about the midnight issue. I had some ideas about it, and > was discussing it with a user, but haven't heard back from him. I'd love to > discuss this with you. I'll send you a more detailed response about this > tonight. > > b) This brings us back to another of your questions. Yes, the system > changes quite often, but every effort has been taken to keep version n+1 > backward compatible with version n. The only exception I can think of is > the --collapse option, which determines how status is displayed. I try to > ensure that new development does not break any of the old test cases. > > c) Arbitrary job calendars is in the works. I know how it's going to be > implemented and am waiting to complete the current version that deals with > tokens before working on calendars. The main feature timetable is as > follows: Tokens (currently in dev), Calendars, and then support for multiple > machines. The multiple machine support might be version 2.0. > > d) Dependencies between families - honestly, I hadn't even thought of > that. Your examples make sense, but there are some important design > decisions that will need to be made - where each option has it's own > merits. Because of issues like this, I prefer not making a decision before > speaking to users about it. Their needs may cause one option to outweigh > the other. > > e) I'm taking the development a little slower than I'd like because I > really want to speak to users before making major design decisions. I use > TaskForest in Production every day on multiple machines, and it meets my > needs. I won't use some of the new features as much as I use the older > ones, so I consider the input from users such as yourself (who rely on these > features) as having more weight than my own input. Unfortunately, even > though TaskForest is apparently being used by a lot of people, you are only > the third person to email me about it in the last 12 months. So getting a > dialog with users is kinda tough :) > > I'll send you some a more detailed email tomorrow morning. In the > meantime, is it OK if I forward your email, and this response and future > responses to the mailing list? It might help other users decide whether or > not TaskForest is appropriate for them. If not, that's cool too. > > Thanks, > > Aijaz. > > > > On Fri, Apr 17, 2009 at 12:45 PM, Svetlana Lemeshov <lem...@mi...>wrote: > >> Hello Aijaz, >> >> Thank you very much for promptly responding to my inquiry! >> >> I would love to hear feedback from your users. >> >> Meanwhile, if you don't mind, I have a couple of questions for you >> since I couldn't find any forum where I can post my questions and have >> them >> answered by other users. In addition, I thought you might be interested >> to hear the feedback from the potential users of your product. >> >> Here is some background information: >> I am a Data Warehouse developer/analyst designated to explore and analyze >> various scheduling products available on the market today with the goal of >> migrating our jobs to a more flexible scheduler. I've installed TaskForest >> and spent some time exploring its features trying to figure out how well >> it can handle various DW specific needs. >> >> MIT Data warehouse consists of data coming from the various source >> systems: >> Hr, Financial, Libraries, Student Systems, Facilities, etc. >> >> Our data gets refreshed nightly, starting after 10:00PM and finishing >> around >> 7:30 AM. The refresh consists of numerous extraction and load processes >> and has >> many inter--dependencies between them. >> >> For instance, many financial loads depend on HR loads, etc. >> >> While exploring TaskForest I stumbled on the following obvious >> limitations: >> >> - Handling a 'midnight' point; >> I restart taskforest at 00:01 from cron file, but since our loads run all >> night >> long, we need to come up with some custom scripts to handle scripts that >> run >> 'across' midnight point. >> Specifically, the situation when a job that runs after midnight depends on >> the >> status of the one that finished before the midnight. >> >> - TaskForest Schedule based only on the days of the week; >> Our current cron utility allows for various scheduling options (by months, >> day of the month, etc.) Since TaskForest is only Days-of-the-Week driven, >> and some of our jobs happen to run only on certain days of the month >> (first of each month, or once in a quarter), we will have to handle this >> with the custom scripts. >> >> - Absence of dependencies between the Families; >> There is no mechanism that would allow to have a Family within a Family to >> handle Jobs that obviously belong to the same family, but have slightly >> different execution schedules. >> >> Sometimes, we can have a situation when jobs that obviously belong to the >> same >> family (same subject area, lots of dependencies between them) run on a >> different days of the week (Ex. Job A runs everyday, but it depends on the >> successful completion of Job B which runs only on weekdays). >> >> If I understand it correctly, in current TaskForest setting, this scenario >> calls >> for 2 different families. However, it seems that there is no mechanism to >> establish dependencies between 2 families. So, it should be handled >> through >> custom scripts like many other things (handling Holidays, etc) >> >> Overall, it seems that our application will require a lot of custom >> scripts to >> help TaskForest handle our jobs. >> >> One more observation. It seems that the product is still evolving and >> every time >> I check there is a new version of it. Since I started working >> with the tool a few months ago, I've already upgraded it once, but I am >> still >> about 2 versions behind. I am concerned about the on-going maintenance and >> support of the product and possible frequent modifications to the >> scheduler >> once it is implemented in production (example: if/when a new feature like >> calendar is implemented, it might require some modifications on our site.) >> >> Aijaz, I am sorry for my lengthy rambling, but these are some of the >> issues I am >> running into. I am not sure whether it is due to the fact that I just fail >> to >> use the product correctly, or these are real limitations. >> >> I was hoping to discuss these issues with other users, but, on the other >> hand, >> who can address these points better than the author of TaskForest? >> >> I am giving a TaskForest presentation to my team on Wednesday, April 22 >> and will be covering many of my 'findings'. >> >> Aijaz, it would be really very helpful if you could clarify some of the >> points >> mentioned above! I appreciate your time and attention! >> >> Thank you very much! >> >> Lana Lemeshov >> >> >> >> >> >> Quoting Aijaz Ansari <en...@us...>: >> >> Svetlana: >>> >>> I'm the author of TaskForest. Since I'm obviously biased, I won't give >>> you >>> my unsolicited opinion :), but feel free to ask me any questions - I'll >>> be >>> glad to answer them. I'm also taking feature requests. Many of the >>> recent >>> features are a result of user emails. >>> >>> ... >>> >>> >>> Thanks, >>> >>> Aijaz. >>> >>> On Thu, Apr 16, 2009 at 3:53 PM, Svetlana Lemeshov <lem...@mi...> >>> wrote: >>> >>> Hello, >>>> >>>> My name is Lana Lemeshov, I work for MIT DataWarehouse. >>>> We are currently using UNIX cron utility for job scheduling, however >>>> we would like to switch to a more flexible product. >>>> >>>> We are looking into a couple of schedulers and TaskForest is one of >>>> the strong contenders (with Oracle 10g Scheduler as an alternative.) >>>> >>>> I am trying to find someone who has any experience using TaskForest and >>>> wouldn't mind sharing the feedback us. >>>> MIT Data Warehouse would love to hear honest reviews of the product >>>> from the user's point of view: specific problems, limitations, support >>>> issues, >>>> etc. >>>> >>>> We are interested to compare how TaskForest stands against the Oracle >>>> Sheduler. >>>> >>>> ANY feedback is greatly appreciated. >>>> >>>> Thank you very much! >>>> >>>> Lana >>>> >>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Stay on top of everything new and different, both inside and >>>> around Java (TM) technology - register by April 22, and save >>>> $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. >>>> 300 plus technical and hands-on sessions. Register today. >>>> Use priority code J9JMT32. http://p.sf.net/sfu/p >>>> _______________________________________________ >>>> Taskforest-discuss mailing list >>>> Tas...@li... >>>> https://lists.sourceforge.net/lists/listinfo/taskforest-discuss >>>> >>>> >>> >> >> > > |
From: Aijaz A. <en...@us...> - 2009-04-18 17:15:42
|
Forwarded to the Taskforest-discuss mailing list with the original author's permission: ---------- Forwarded message ---------- From: Aijaz Ansari <en...@us...> Date: Fri, Apr 17, 2009 at 1:48 PM Subject: Re: [Taskforest-discuss] Looking for TaskForest USERS!!! To: Svetlana Lemeshov <lem...@mi...> Lana: Thanks for your email. These are excellent points. I'll give you a quick response now (as I'll be leaving my desk soon), and a more detailed one tomorrow. In a nutshell - a) You're right about the midnight issue. I had some ideas about it, and was discussing it with a user, but haven't heard back from him. I'd love to discuss this with you. I'll send you a more detailed response about this tonight. b) This brings us back to another of your questions. Yes, the system changes quite often, but every effort has been taken to keep version n+1 backward compatible with version n. The only exception I can think of is the --collapse option, which determines how status is displayed. I try to ensure that new development does not break any of the old test cases. c) Arbitrary job calendars is in the works. I know how it's going to be implemented and am waiting to complete the current version that deals with tokens before working on calendars. The main feature timetable is as follows: Tokens (currently in dev), Calendars, and then support for multiple machines. The multiple machine support might be version 2.0. d) Dependencies between families - honestly, I hadn't even thought of that. Your examples make sense, but there are some important design decisions that will need to be made - where each option has it's own merits. Because of issues like this, I prefer not making a decision before speaking to users about it. Their needs may cause one option to outweigh the other. e) I'm taking the development a little slower than I'd like because I really want to speak to users before making major design decisions. I use TaskForest in Production every day on multiple machines, and it meets my needs. I won't use some of the new features as much as I use the older ones, so I consider the input from users such as yourself (who rely on these features) as having more weight than my own input. Unfortunately, even though TaskForest is apparently being used by a lot of people, you are only the third person to email me about it in the last 12 months. So getting a dialog with users is kinda tough :) I'll send you some a more detailed email tomorrow morning. In the meantime, is it OK if I forward your email, and this response and future responses to the mailing list? It might help other users decide whether or not TaskForest is appropriate for them. If not, that's cool too. Thanks, Aijaz. On Fri, Apr 17, 2009 at 12:45 PM, Svetlana Lemeshov <lem...@mi...>wrote: > Hello Aijaz, > > Thank you very much for promptly responding to my inquiry! > > I would love to hear feedback from your users. > > Meanwhile, if you don't mind, I have a couple of questions for you > since I couldn't find any forum where I can post my questions and have them > answered by other users. In addition, I thought you might be interested > to hear the feedback from the potential users of your product. > > Here is some background information: > I am a Data Warehouse developer/analyst designated to explore and analyze > various scheduling products available on the market today with the goal of > migrating our jobs to a more flexible scheduler. I've installed TaskForest > and spent some time exploring its features trying to figure out how well > it can handle various DW specific needs. > > MIT Data warehouse consists of data coming from the various source systems: > Hr, Financial, Libraries, Student Systems, Facilities, etc. > > Our data gets refreshed nightly, starting after 10:00PM and finishing > around > 7:30 AM. The refresh consists of numerous extraction and load processes and > has > many inter--dependencies between them. > > For instance, many financial loads depend on HR loads, etc. > > While exploring TaskForest I stumbled on the following obvious limitations: > > - Handling a 'midnight' point; > I restart taskforest at 00:01 from cron file, but since our loads run all > night > long, we need to come up with some custom scripts to handle scripts that > run > 'across' midnight point. > Specifically, the situation when a job that runs after midnight depends on > the > status of the one that finished before the midnight. > > - TaskForest Schedule based only on the days of the week; > Our current cron utility allows for various scheduling options (by months, > day of the month, etc.) Since TaskForest is only Days-of-the-Week driven, > and some of our jobs happen to run only on certain days of the month > (first of each month, or once in a quarter), we will have to handle this > with the custom scripts. > > - Absence of dependencies between the Families; > There is no mechanism that would allow to have a Family within a Family to > handle Jobs that obviously belong to the same family, but have slightly > different execution schedules. > > Sometimes, we can have a situation when jobs that obviously belong to the > same > family (same subject area, lots of dependencies between them) run on a > different days of the week (Ex. Job A runs everyday, but it depends on the > successful completion of Job B which runs only on weekdays). > > If I understand it correctly, in current TaskForest setting, this scenario > calls > for 2 different families. However, it seems that there is no mechanism to > establish dependencies between 2 families. So, it should be handled through > custom scripts like many other things (handling Holidays, etc) > > Overall, it seems that our application will require a lot of custom scripts > to > help TaskForest handle our jobs. > > One more observation. It seems that the product is still evolving and every > time > I check there is a new version of it. Since I started working > with the tool a few months ago, I've already upgraded it once, but I am > still > about 2 versions behind. I am concerned about the on-going maintenance and > support of the product and possible frequent modifications to the scheduler > once it is implemented in production (example: if/when a new feature like > calendar is implemented, it might require some modifications on our site.) > > Aijaz, I am sorry for my lengthy rambling, but these are some of the issues > I am > running into. I am not sure whether it is due to the fact that I just fail > to > use the product correctly, or these are real limitations. > > I was hoping to discuss these issues with other users, but, on the other > hand, > who can address these points better than the author of TaskForest? > > I am giving a TaskForest presentation to my team on Wednesday, April 22 > and will be covering many of my 'findings'. > > Aijaz, it would be really very helpful if you could clarify some of the > points > mentioned above! I appreciate your time and attention! > > Thank you very much! > > Lana Lemeshov > > > > > > Quoting Aijaz Ansari <en...@us...>: > > Svetlana: >> >> I'm the author of TaskForest. Since I'm obviously biased, I won't give >> you >> my unsolicited opinion :), but feel free to ask me any questions - I'll be >> glad to answer them. I'm also taking feature requests. Many of the >> recent >> features are a result of user emails. >> >> ... >> >> Thanks, >> >> Aijaz. >> >> On Thu, Apr 16, 2009 at 3:53 PM, Svetlana Lemeshov <lem...@mi...> >> wrote: >> >> Hello, >>> >>> My name is Lana Lemeshov, I work for MIT DataWarehouse. >>> We are currently using UNIX cron utility for job scheduling, however >>> we would like to switch to a more flexible product. >>> >>> We are looking into a couple of schedulers and TaskForest is one of >>> the strong contenders (with Oracle 10g Scheduler as an alternative.) >>> >>> I am trying to find someone who has any experience using TaskForest and >>> wouldn't mind sharing the feedback us. >>> MIT Data Warehouse would love to hear honest reviews of the product >>> from the user's point of view: specific problems, limitations, support >>> issues, >>> etc. >>> >>> We are interested to compare how TaskForest stands against the Oracle >>> Sheduler. >>> >>> ANY feedback is greatly appreciated. >>> >>> Thank you very much! >>> >>> Lana >>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Stay on top of everything new and different, both inside and >>> around Java (TM) technology - register by April 22, and save >>> $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. >>> 300 plus technical and hands-on sessions. Register today. >>> Use priority code J9JMT32. http://p.sf.net/sfu/p >>> _______________________________________________ >>> Taskforest-discuss mailing list >>> Tas...@li... >>> https://lists.sourceforge.net/lists/listinfo/taskforest-discuss >>> >>> >> > > |
From: Svetlana L. <lem...@MI...> - 2009-04-16 20:54:02
|
Hello, My name is Lana Lemeshov, I work for MIT DataWarehouse. We are currently using UNIX cron utility for job scheduling, however we would like to switch to a more flexible product. We are looking into a couple of schedulers and TaskForest is one of the strong contenders (with Oracle 10g Scheduler as an alternative.) I am trying to find someone who has any experience using TaskForest and wouldn't mind sharing the feedback us. MIT Data Warehouse would love to hear honest reviews of the product from the user's point of view: specific problems, limitations, support issues, etc. We are interested to compare how TaskForest stands against the Oracle Sheduler. ANY feedback is greatly appreciated. Thank you very much! Lana |
From: Aijaz A. <ai...@en...> - 2009-03-24 03:10:08
|
TaskForest 1.23 is now available. This release fixes a nasty bug where Family files were not being parsed properly if the files were in DOS format (with CRLF endings, instead of just LF). Unfortunately, most web browsers save textarea text with CRLF, so a Family file that was originally in Unix format (LF) could wind up being in DOS (CRLF) format if you edited it via the website. |
From: Aijaz A. <en...@us...> - 2009-03-22 19:37:49
|
TaskForest 1.22 is now available. o Added the ability to release all dependencies from a job. This makes the job available to run immediately, regardless of how many jobs it is supposed to wait for, or what time dependency it has. Releasing a job effectively changes its status from 'Waiting' to 'Ready.' This option is only available to jobs that are currently in the 'Waiting' state. o Fixed a minor bug where status on the website was sometimes showing a previous day's status if the website had been up for more than a day. o Added a line break between the words in the headers in the status and log pages on the website, so that the table doesn't take up too much horizontal space. o Eliminated a debug message saying that the ignore_regex option changed every time the system cycled. Thanks, Aijaz. |
From: Aijaz A. <en...@us...> - 2009-03-12 03:18:25
|
Version 1.21 of TaskForest is now available. >From the Change Log: o Fixed a bug that was causing the rerun and mark commands run with the --cascade or --dependents_only flag to print an error message when there was, in fact, no error, and possibly exit before rerunning or marking all requested jobs. Thanks to Rosco Rouse for reporting the bug. Aijaz. |
From: Maazin A. <maa...@gm...> - 2009-03-12 01:11:31
|
Test from an non-subscribed sender |
From: Aijaz A. <ai...@en...> - 2009-03-11 18:05:04
|
This appears to be a Gmail feature. Check out: http://wiki.list.org/display/DOC/I+use+Gmail-Googlemail%2C+but+I+can%27t+tell+if+any+of+my+messages+have+been+posted+to+the+list On Wed, Mar 11, 2009 at 12:21 PM, Aijaz Ansari <ai...@en...> wrote: > Let's try again > > > ------------------------------------------------------------------------------ > Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are > powering Web 2.0 with engaging, cross-platform capabilities. Quickly and > easily build your RIAs with Flex Builder, the Eclipse(TM)based development > software that enables intelligent coding and step-through debugging. > Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com > _______________________________________________ > Taskforest-discuss mailing list > Tas...@li... > https://lists.sourceforge.net/lists/listinfo/taskforest-discuss > > -- Aijaz A. Ansari |
From: Aijaz A. <ai...@en...> - 2009-03-11 17:21:58
|
Let's try again |
From: Aijaz A. <aij...@gm...> - 2009-03-11 17:04:27
|
List messages don't seem to be getting through. |
From: Aijaz A. <en...@us...> - 2009-03-11 16:36:21
|
Final test (I hope :) |