It's probably best to perform such long processing as a separate crontab or
daemon that runs your Tcl code, rather than doing it all as a single Rivet
page. Your Rivet page should instead initiate the processing by using a
database or a file to store new "jobs" to be performed by the backend
crontab/daemon, and then return. You can make a different Rivet page that
checks for the results of the processing that had been stored in a file or
in a database updated by your processing script.


On Mon, Nov 24, 2014 at 11:58 AM, Georgios Petasis <
[email protected]> wrote:

> On 22/11/2014 17:15, Massimo Manghi wrote:
>
>> I can understand something like a timeout occurs with the connection, but
>> I don't understand why apache starts it over in another process. From what
>> you say I can only gather that the new computation is started from the
>> beginning and the state of the former lost. What do you read from the logs?
>> If it's just a problem of connection timeout I think you can keep it alive
>> just sending to the client some character from time to time during the
>> computation flushing the channel after calling puts...
>>
> Well it is a badly designed system. I have a lengthy calculation (like 8
> hours). So the caller (which is an apache tomcat, written in java) calls my
> service (apache2 + rivet), and waits until I have finished. But for some
> reason (I don't know), apache starts a second instance after about 2 hours,
> so I end up running multiple instances of the computation in parallel.
>
> I don't think it is an issue of connection timeout (both processes run on
> the same server). Something internally in apache 2 times out, and thinks
> the process serving the request has stopped, and tries to run again the
> same request on another child.
>
> Searching the documentation, Timeout=0 is suggested, but I don't know the
> implications.
>
>
>> apt-cache-ng is repository cache for Debian/Ubuntu and has a web
>> interface for the database diagnostics and maintenance. Some of the
>> maintenance tasks take several minutes and the process never stops, but it
>> sends some feedback to the client
>>
> (I know about starting a process and check the status with subsequent
> calls, but unfortunately the system was not designed this way)
>
> Best regards,
>
> George
>
>>
>> let me know
>>
>>  -- Massimo
>>
>>
>> On 11/22/2014 12:26 PM, Georgios Petasis wrote:
>>
>>> Hi all,
>>>
>>> I have a quite lengthy computation exposed as a service through rivet.
>>> What I have observed, is that apache after some time,
>>> thinks that the process running my computation has stuck, and starts the
>>> same computation in a second process.
>>>
>>> Is there a way to avoid this?
>>>
>>> Regards,
>>>
>>> George
>>>
>>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to