TODO.txt in ruote-2.1.9 vs TODO.txt in ruote-2.1.10
- old
+ new
@@ -191,30 +191,47 @@
[o] StorageParticipant#query(wfid, participant_name, {fields})
[x] break fs_history, prepare for dm_history
[o] part = engine.register_participant :alpha, StorageParticipant should work...
[o] concurrence :merge_type => 'stack'
[o] CompositeStorage.new('msgs' => AmqpStorage.new(''), ...)
+[x] let the storage participant leverage Ruote::FlowExpressionId.from_id(s)
+[o] Andrew's technique http://groups.google.com/group/openwferu-users/browse_thread/thread/c2aa4b53d1664d45/8523a1a5ee98fd71
+[o] Avishai : LocalParticipant : repost dispatch message
+[o] Rdoc Ruote::Engine.register_participant -> passing a block to a participant
+ and perhaps also on
+ http://ruote.rubyforge.org/implementing_participants.html (Avish)
+[o] wrap workitem in process error ? for on_error consumption (thanks Oleg)
+ doing workitem.fields['__error__'] = [ fei, time, error_message ]
+[o] HashStorage should emit 'init persist fail' messages as well !
+[o] Oleg's idea about participant on_reply
+ http://groups.google.com/group/openwferu-users/browse_thread/thread/2e6a95708c10847b
+ on_reply should be done in the receive action, not in Receiver
+ thus, in the ParticipantExpression
+[x] exp : step (jump to cursor tag ?) : there is already the jump expression
+[x] auto-participant re-apply
+[o] receiver should be OK with a storage or a context
+[x] Avishai : Worker : hook for rejecting the dispatch message
+[o] receiver / local participant : reply/forward/proceed/... mess : fix
+[o] storage participant : accept string for fei
+[o] => Ruote::FlowExpressionId.extract(x)
+[o] fei : place engine id in fei.to_storage_id (and back)
[ ] exp : exp (restricted form of eval ?)
[ ] exp : case (is it necessary ?)
[ ] exp : filter
[ ] exp : filter-definition
[x] exp : lose ?
[x] exp : parameter
-[ ] exp : log
+[ ] exp : log : or could it be a participant ?
[ ] exp : defined (not really necessary)
[ ] exp : quote (not really necessary)
[ ] exp : field / attribute (not really necessary)
[ ] exp : variable (not really necessary)
-[ ] exp : step (jump to cursor tag ?)
-
[ ] conditional : rprefix ! ${r:x} is perhaps sufficient
-[ ] auto-participant re-apply
-
[ ] define without name (__result__)
[ ] pooltool.ru
[ ] participant dispatch thread throttling ?
@@ -232,10 +249,13 @@
[ ] set :var => 'y' { '2342342' }
[ ] pause engine
[ ] pause process instance
+ |
+ would it mean something like placing a paused list in the storage
+ and fetching it all the time ?
[ ] file/fs_listener [example] ?
[ ] tree.to_xml (require builder ?)
[ ] tree.to_rb
@@ -291,28 +311,29 @@
[ ] spare 1 get_msg by caching msg (but keep 'deleting')
[ ] [un]set_var : via message ? should be ok like that... Not much traffic there
[ ] empty iterator or concurrent-iterator, log ? crash ? empty while...
[ ] at expression ?
-[ ] listen to participants/errors/tags {in|out}
[ ] remove abort_on_exception=true
[ ] shell ? irb ? Shell.new(storage)
[ ] focus on fulldup or json.dup (via fulldup ?)
-[ ] implement pause engine
-[ ] implement pause process
+[ ] listen to participants/errors/tags {in|out}
-[ ] engine.on_error = 'participant_name' // 'subprocess_name'
+[x] engine.on_error = 'participant_name' // 'subprocess_name'
+ done at : http://github.com/jmettraux/ruote/commit/50292d954ff877f1f6615022216f346a7001b483
+ `--> reverting that for now, too dangerous
+[ ] should __error__ contain the tree ?
+[ ] engine.on_cancel = 'participant_name' // 'subprocess_name'
+
[ ] "business days" plugin
[ ] issue with ruote-kit and inpa participants...
-[ ] let the storage participant leverage Ruote::FlowExpressionId.from_id(s)
-
[ ] participant :ref => '${f:nada}', :or => 'xyz'
(look at OpenWFE manual, this feature already existed in there)
http://www.openwfe.org/manual/ch06s02.html#expression_participant
else-ref... list of participants...
ref="alpha && bravo", ref="alpha||bravo" (|| parallel :( )
@@ -320,6 +341,29 @@
[ ] LocalParticipant def consume; handle; reply; end
[ ] lib/ruote/part/participant_list.rb l176 better error message !
[ ] find better solution than "get all schedules"
+
+[ ] worker : minuteman, make it cron triggerable
+ trap SIGUSR1 or USR2
+ maybe it's expensive to fire a [worker] process each minute
+ have to write the $$ (pid) somewhere for cron to pick it up
+
+[ ] detach / attach segments of processes
+[ ] clone process ? (could be used by {de|at}tach)
+
+[ ] dollar.rb ${timestamp} ?
+
+[ ] toto :task => 'maw the lawn', :within => '3d'
+
+[ ] solve the ps#root_expression_for(fei) dilemma
+
+[ ] engine.noisy = true shortcut
+
+[ ] re_apply_stalled
+ http://groups.google.com/group/openwferu-users/browse_thread/thread/ff29f26d6b5fd135
+
+[ ] wait_for(:inactive) blocks until worker is inactive
+
+[ ] storage0.copy_to(storage1) / migrate_to as requested by Matt Nichols