progress 4gl - How to handle numbers of prowin32.exe -
i've been doing os-command execute -p "procedure.p" -param inside loop.
my question how can handle number of prowin32.exe not spawn won't consume processor , not less make fast?
note: version 8.3c
sample code
define variable filter character no-undo. each item no-lock: assign filter = "item.item = " + item.item no-error. os-command no-wait value("c:\dlcs\83c\bin\prowin32 " + "-p c:\nanox\syte_server5\atms-configured-icons\live\nanox_utility\procedure.p " + "-pf c:\nanox\syte_server5\atms-configured-icons\live\nanox_utility\conf\pilot.pf " + "-param " + filter). end. quit.
i bit differently. decide ahead of time how many threads , divvy work so:
/* worker.p * * i.e.: * mbpro dbname -p worker.p -param "0,5" * mbpro dbname -p worker.p -param "1,5" * mbpro dbname -p worker.p -param "2,5" * mbpro dbname -p worker.p -param "3,5" * mbpro dbname -p worker.p -param "4,5" * * in sample threadnum starts @ 0 -- end @ numthreads - 1 * */ define variable threadnum integer no-undo. define variable numthreads integer no-undo. assign threadnum = integer( entry( 1, session:parameter )) numthreads = integer( entry( 2, session:parameter )) . each item no-lock (( item.item modulo numthreads ) = threadnum ): /* whatever */ end. return.
for starters suggest numthreads number of cores available in server.
also, headless batch processes shouldn't using prowin32.exe. should use _progres.exe.
8.3 unspeakably ancient, obsolete , unsupported. system running on single core pentium windows 3.11? that's relevant because 8.3 "workgroup edition" not behave if multi-core system. if "enterprise" won't bad. you'd advised upgrade current release (11.3 of writing) if performance @ important you.
Comments
Post a Comment