MOBILE-2431 sync: Decrease sync cron times to 5 minutes

main
Dani Palou 2018-06-20 16:49:23 +02:00
parent f8f6d08318
commit 517ed53327
23 changed files with 34 additions and 24 deletions

View File

@ -52,7 +52,6 @@ export interface AddonModAssignSyncResult {
export class AddonModAssignSyncProvider extends CoreSyncBaseProvider {
static AUTO_SYNCED = 'addon_mod_assign_autom_synced';
static SYNC_TIME = 300000;
protected componentTranslate: string;

View File

@ -42,6 +42,6 @@ export class AddonModAssignSyncCronHandler implements CoreCronHandler {
* @return {number} Time between consecutive executions (in ms).
*/
getInterval(): number {
return 600000; // 10 minutes.
return this.assignSync.syncInterval;
}
}

View File

@ -42,6 +42,6 @@ export class AddonModChoiceSyncCronHandler implements CoreCronHandler {
* @return {number} Time between consecutive executions (in ms).
*/
getInterval(): number {
return 600000; // 10 minutes.
return this.choiceSync.syncInterval;
}
}

View File

@ -77,7 +77,7 @@ export class AddonModChoiceSyncProvider extends CoreSyncBaseProvider {
// Sync all responses.
responses.forEach((response) => {
promises.push(this.syncChoice(response.choiceid, response.userid, siteId).then((result) => {
promises.push(this.syncChoiceIfNeeded(response.choiceid, response.userid, siteId).then((result) => {
if (result && result.updated) {
// Sync successful, send event.
this.eventsProvider.trigger(AddonModChoiceSyncProvider.AUTO_SYNCED, {
@ -91,6 +91,24 @@ export class AddonModChoiceSyncProvider extends CoreSyncBaseProvider {
});
}
/**
* Sync an choice only if a certain time has passed since the last time.
*
* @param {number} choiceId Choice ID to be synced.
* @param {number} userId User the answers belong to.
* @param {string} [siteId] Site ID. If not defined, current site.
* @return {Promise<any>} Promise resolved when the choice is synced or it doesn't need to be synced.
*/
syncChoiceIfNeeded(choiceId: number, userId: number, siteId?: string): Promise<any> {
const syncId = this.getSyncId(choiceId, userId);
return this.isSyncNeeded(syncId, siteId).then((needed) => {
if (needed) {
return this.syncChoice(choiceId, userId, siteId);
}
});
}
/**
* Synchronize a choice.
*

View File

@ -42,6 +42,6 @@ export class AddonModDataSyncCronHandler implements CoreCronHandler {
* @return {number} Time between consecutive executions (in ms).
*/
getInterval(): number {
return 600000; // 10 minutes.
return this.dataSync.syncInterval;
}
}

View File

@ -42,6 +42,6 @@ export class AddonModFeedbackSyncCronHandler implements CoreCronHandler {
* @return {number} Time between consecutive executions (in ms).
*/
getInterval(): number {
return 600000; // 10 minutes.
return this.feedbackSync.syncInterval;
}
}

View File

@ -42,6 +42,6 @@ export class AddonModForumSyncCronHandler implements CoreCronHandler {
* @return {number} Time between consecutive executions (in ms).
*/
getInterval(): number {
return AddonModForumSyncProvider.SYNC_TIME;
return this.forumSync.syncInterval;
}
}

View File

@ -36,7 +36,6 @@ export class AddonModForumSyncProvider extends CoreSyncBaseProvider {
static AUTO_SYNCED = 'addon_mod_forum_autom_synced';
static MANUAL_SYNCED = 'addon_mod_forum_manual_synced';
static SYNC_TIME = 600000;
protected componentTranslate: string;

View File

@ -42,6 +42,6 @@ export class AddonModGlossarySyncCronHandler implements CoreCronHandler {
* @return {number} Time between consecutive executions (in ms).
*/
getInterval(): number {
return AddonModGlossarySyncProvider.SYNC_TIME;
return this.glossarySync.syncInterval;
}
}

View File

@ -35,7 +35,6 @@ import { AddonModGlossaryOfflineProvider } from './offline';
export class AddonModGlossarySyncProvider extends CoreSyncBaseProvider {
static AUTO_SYNCED = 'addon_mod_glossary_autom_synced';
static SYNC_TIME = 600000; // 10 minutes.
protected componentTranslate: string;

View File

@ -53,7 +53,6 @@ export interface AddonModLessonSyncResult {
export class AddonModLessonSyncProvider extends CoreSyncBaseProvider {
static AUTO_SYNCED = 'addon_mod_lesson_autom_synced';
static SYNC_TIME = 300000;
protected componentTranslate: string;

View File

@ -42,6 +42,6 @@ export class AddonModLessonSyncCronHandler implements CoreCronHandler {
* @return {number} Time between consecutive executions (in ms).
*/
getInterval(): number {
return 600000;
return this.lessonSync.syncInterval;
}
}

View File

@ -26,7 +26,7 @@ export class AddonModQuizAccessOfflineAttemptsHandler implements AddonModQuizAcc
name = 'AddonModQuizAccessOfflineAttempts';
ruleName = 'quizaccess_offlineattempts';
constructor() {
constructor(protected quizSync: AddonModQuizSyncProvider) {
// Nothing to do.
}
@ -86,6 +86,6 @@ export class AddonModQuizAccessOfflineAttemptsHandler implements AddonModQuizAcc
}
// Show warning if last sync was a while ago.
return Date.now() - AddonModQuizSyncProvider.SYNC_TIME > quiz.syncTime;
return Date.now() - this.quizSync.syncInterval > quiz.syncTime;
}
}

View File

@ -52,7 +52,6 @@ export interface AddonModQuizSyncResult {
export class AddonModQuizSyncProvider extends CoreSyncBaseProvider {
static AUTO_SYNCED = 'addon_mod_quiz_autom_synced';
static SYNC_TIME = 300000;
protected componentTranslate: string;

View File

@ -42,6 +42,6 @@ export class AddonModQuizSyncCronHandler implements CoreCronHandler {
* @return {number} Time between consecutive executions (in ms).
*/
getInterval(): number {
return AddonModQuizSyncProvider.SYNC_TIME;
return this.quizSync.syncInterval;
}
}

View File

@ -57,7 +57,6 @@ export interface AddonModScormSyncResult {
export class AddonModScormSyncProvider extends CoreSyncBaseProvider {
static AUTO_SYNCED = 'addon_mod_scorm_autom_synced';
static SYNC_TIME = 600000;
protected componentTranslate: string;

View File

@ -42,6 +42,6 @@ export class AddonModScormSyncCronHandler implements CoreCronHandler {
* @return {number} Time between consecutive executions (in ms).
*/
getInterval(): number {
return AddonModScormSyncProvider.SYNC_TIME;
return this.scormSync.syncInterval;
}
}

View File

@ -42,6 +42,6 @@ export class AddonModSurveySyncCronHandler implements CoreCronHandler {
* @return {number} Time between consecutive executions (in ms).
*/
getInterval(): number {
return 600000; // 10 minutes.
return this.surveySync.syncInterval;
}
}

View File

@ -42,6 +42,6 @@ export class AddonModWikiSyncCronHandler implements CoreCronHandler {
* @return {number} Time between consecutive executions (in ms).
*/
getInterval(): number {
return 600000; // 10 minutes.
return this.wikiSync.syncInterval;
}
}

View File

@ -96,7 +96,6 @@ export class AddonModWikiSyncProvider extends CoreSyncBaseProvider {
static AUTO_SYNCED = 'addon_mod_wiki_autom_synced';
static MANUAL_SYNCED = 'addon_mod_wiki_manual_synced';
static SYNC_TIME = 300000;
protected componentTranslate: string;

View File

@ -42,6 +42,6 @@ export class AddonModWorkshopSyncCronHandler implements CoreCronHandler {
* @return {number} Time between consecutive executions (in ms).
*/
getInterval(): number {
return AddonModWorkshopSyncProvider.SYNC_TIME;
return this.workshopSync.syncInterval;
}
}

View File

@ -35,7 +35,6 @@ export class AddonModWorkshopSyncProvider extends CoreSyncBaseProvider {
static AUTO_SYNCED = 'addon_mod_workshop_autom_synced';
static MANUAL_SYNCED = 'addon_mod_workshop_manual_synced';
static SYNC_TIME = 300000;
protected componentTranslate: string;

View File

@ -42,6 +42,6 @@ export class AddonNotesSyncCronHandler implements CoreCronHandler {
* @return {number} Time between consecutive executions (in ms).
*/
getInterval(): number {
return 600000; // 10 minutes.
return 300000; // 5 minutes.
}
}