[Owncloud] Background Jobs

Klaas Freitag freitag at owncloud.com
Mon Aug 13 09:49:45 UTC 2012


On 12.08.2012 11:29, Jakob Sack wrote:
> I removed the option from the UI. In the program code the option "none"
> is still usable.
Come on, isn't that the worst of all possible solutions? ;-)

Changing the program code is not the best way to do app configuration as 
the change will be gone with the next update. Why not put an value in 
config.php if we do not want a GUI option?

I think there should be an option to set up ownCloud completely stand 
alone, without having the system seeking out for other web services.

Or do I get something wrong?

Thx,
Klaas

>
> Am 11.08.2012 23:08, schrieb Jan-Christoph Borchardt:
>> Ah sorry, I phrased it wrong. I didn’t mean »just use AJAX all the
>> time and remove the option for cron jobs«, I meant »AJAX is always
>> available and has no negative effect, so let’s just not have an option
>> to deactivate background jobs«.
>> Of course if the server supports it, cron should be used.
>>
>>
>> TL;DR: Nice, let’s remove the option to deactivate background jobs.
>>
>>
>>
>> On Sat, Aug 11, 2012 at 2:03 PM, Jakob Sack <mail at jakobsack.de> wrote:
>>> Hi Jan,
>>>
>>> thank you for the praise.
>>> as far as I know there is no reason for completely disabling background
>>> jobs.
>>> I strongly disaggree with you regarding your second argument. Using AJAX
>>> always is a bad idea. Exactly spoken, there are at least two problems
>>> with
>>> the ajax solution: if you installed ownCloud on a shared web hosting
>>> service
>>> and use it alone or with your family chances are high that there are
>>> periods
>>> with no one being online. Then you could miss news that are meant to be
>>> fetched every now and then. In this case a webcron serice would be
>>> perfect.
>>> On the other hand a large setup with several hundred users - we both
>>> know
>>> that they exist - should not be bombed with another hundred requests
>>> every
>>> minute. In this case it's better to use the systems cron service
>>> which does
>>> not have the limitations apaches processes might have.
>>> regards,
>>>
>>> Jakob
>>>
>>> Am 11.08.2012 20:30, schrieb Jan-Christoph Borchardt:
>>>
>>>> Awesoooome! Does that mean that step-by-step, all the »refresh« and
>>>> »rescan« buttons can go away?
>>>>
>>>> Just one thing: You say »there are four options: using the systems
>>>> cron feature, using a webcron service, using AJAX or not using
>>>> background jobs at all.«
>>>> Why even have the possibility to deactivate it? It’s a great function
>>>> which improves the experience silently, as with doing away with the
>>>> need for refresh buttons. And since doing it via AJAX is a good
>>>> default there’s no reason to not just do it like that always – or is
>>>> there?
>>>>
>>>>
>>>> On Sat, Aug 11, 2012 at 7:07 AM, Jakob Sack <mail at jakobsack.de> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> yesterday I pushed the new Background Jobs system to ownCloud
>>>>> master. As
>>>>> you
>>>>> can guess from the name, this feature allows ownCloud to do certain
>>>>> tasks
>>>>> in
>>>>> the background without blocking the UI. It also makes it possible to
>>>>> execute
>>>>> some tasks without any need of user interaction, for example fetching
>>>>> news
>>>>> while the user is on holidays.
>>>>> From a users perspective there is not much to pay attention to,
>>>>> background
>>>>> jobs tries to get out of the way as much as possible. On the other
>>>>> hand,
>>>>> administrators can use the settings interface to set the way
>>>>> background
>>>>> jobs
>>>>> are executed. There are four options: using the systems cron feature,
>>>>> using
>>>>> a webcron service, using AJAX or not using background jobs at all.
>>>>> Using
>>>>> the
>>>>> systems cron feature is the preferred way. It allows regular executed
>>>>> jobs
>>>>> without the limitations the web server may have. The second
>>>>> recommended
>>>>> option is the webcron implementation. By registering your ownCloud
>>>>> cron.php
>>>>> address at a webcron service like [1] you ensure that background jobs
>>>>> will
>>>>> be executed regularly. Using AJAX is the default option, although the
>>>>> least
>>>>> reliable. Every time a  user visits the page a single background
>>>>> job gets
>>>>> executed. The disadvantage of this solution compared to the webcron
>>>>> service
>>>>> is that it requires regular visits of the page. The reason for making
>>>>> this
>>>>> option the default is that this solution simply does not require
>>>>> access
>>>>> to
>>>>> the system or registration on some third party service.
>>>>> When you are implementing background jobs in your app, please be
>>>>> aware of
>>>>> the difference between the AJAX/Webcron and the cron
>>>>> implementation! The
>>>>> AJAX/Webcron implementation gets started by
>>>>> your-favorite-web-server, so
>>>>> you
>>>>> might have some limitations on execution time or memory. These
>>>>> limitations
>>>>> do not affect the system cron implementation, which calls php from the
>>>>> command line. As a consequence, you should split large tasks when not
>>>>> using
>>>>> system cron. You can check whether the app has been started by systems
>>>>> cron
>>>>> by checking if OC::$CLI is set to true.
>>>>> If you want to  use background jobs in your app, you have to register
>>>>> them
>>>>> in appinfo/app.php by calling OCP\BackgroundJobs::addRegularTask(
>>>>> $class,
>>>>> $method ).
>>>>> The first app featuring a background job is the news app being
>>>>> implemented
>>>>> by Alessandro Cosentino (zimba12). If you want to use background
>>>>> jobs in
>>>>> your app, have a look at the apps:newsapp repository first! There you
>>>>> will
>>>>> not only find a working example, but also a strategy of how to deal
>>>>> with
>>>>> the
>>>>> different requirements of AJAX/Webcron and the system cron.
>>>>> Regards,
>>>>>
>>>>> Jakob
>>>>>
>>>>> 1: http://www.easycron.com/
>>>>> _______________________________________________
>>>>> Owncloud mailing list
>>>>> Owncloud at kde.org
>>>>> https://mail.kde.org/mailman/listinfo/owncloud
>>>>
>>>> _______________________________________________
>>>> Owncloud mailing list
>>>> Owncloud at kde.org
>>>> https://mail.kde.org/mailman/listinfo/owncloud
>>>
>>>
>>> _______________________________________________
>>> Owncloud mailing list
>>> Owncloud at kde.org
>>> https://mail.kde.org/mailman/listinfo/owncloud
>
> _______________________________________________
> Owncloud mailing list
> Owncloud at kde.org
> https://mail.kde.org/mailman/listinfo/owncloud





More information about the Owncloud mailing list