Revert rate limit on client
This commit is contained in:
parent
fe91848d95
commit
23ff77487e
2 changed files with 8 additions and 19 deletions
|
@ -6,7 +6,7 @@
|
|||
import { timeout, Delayer } from 'vs/base/common/async';
|
||||
import { Event, Emitter } from 'vs/base/common/event';
|
||||
import { Disposable } from 'vs/base/common/lifecycle';
|
||||
import { IUserDataSyncLogService, IUserDataSyncService, SyncStatus, IUserDataAutoSyncService, UserDataSyncError, UserDataSyncErrorCode, IUserDataSyncEnablementService, ALL_SYNC_RESOURCES } from 'vs/platform/userDataSync/common/userDataSync';
|
||||
import { IUserDataSyncLogService, IUserDataSyncService, SyncStatus, IUserDataAutoSyncService, UserDataSyncError, UserDataSyncErrorCode, IUserDataSyncEnablementService } from 'vs/platform/userDataSync/common/userDataSync';
|
||||
import { IAuthenticationTokenService } from 'vs/platform/authentication/common/authentication';
|
||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
|
||||
|
@ -21,7 +21,6 @@ export class UserDataAutoSyncService extends Disposable implements IUserDataAuto
|
|||
|
||||
private enabled: boolean = this.getDefaultEnablementValue();
|
||||
private successiveFailures: number = 0;
|
||||
private lastSyncTriggerTime: number | undefined = undefined;
|
||||
private readonly syncDelayer: Delayer<void>;
|
||||
|
||||
private readonly _onError: Emitter<UserDataSyncError> = this._register(new Emitter<UserDataSyncError>());
|
||||
|
@ -70,7 +69,6 @@ export class UserDataAutoSyncService extends Disposable implements IUserDataAuto
|
|||
private async sync(loop: boolean, auto: boolean): Promise<void> {
|
||||
if (this.enabled) {
|
||||
try {
|
||||
this.lastSyncTriggerTime = new Date().getTime();
|
||||
await this.userDataSyncService.sync();
|
||||
this.resetFailures();
|
||||
} catch (e) {
|
||||
|
@ -124,17 +122,6 @@ export class UserDataAutoSyncService extends Disposable implements IUserDataAuto
|
|||
return this.syncDelayer.cancel();
|
||||
}
|
||||
|
||||
/*
|
||||
If sync is not triggered by sync resource (triggered by other sources like window focus etc.,)
|
||||
then limit sync to once per minute
|
||||
*/
|
||||
const isNotTriggeredBySyncResource = ALL_SYNC_RESOURCES.every(syncResource => sources.indexOf(syncResource) === -1);
|
||||
if (isNotTriggeredBySyncResource && this.lastSyncTriggerTime
|
||||
&& Math.round((new Date().getTime() - this.lastSyncTriggerTime) / 1000) < 60) {
|
||||
this.logService.debug('Auto Sync Skipped: Limited to once per minute.');
|
||||
return;
|
||||
}
|
||||
|
||||
this.sources.push(...sources);
|
||||
return this.syncDelayer.trigger(() => {
|
||||
this.telemetryService.publicLog2<{ sources: string[] }, AutoSyncClassification>('sync/triggered', { sources: this.sources });
|
||||
|
|
|
@ -57,7 +57,6 @@ suite('UserDataAutoSyncService', () => {
|
|||
await testObject.triggerAutoSync([SyncResource.Settings]);
|
||||
}
|
||||
|
||||
// Make sure only one request is made
|
||||
assert.deepEqual(target.requests, [
|
||||
{ type: 'GET', url: `${target.url}/v1/manifest`, headers: {} },
|
||||
{ type: 'GET', url: `${target.url}/v1/manifest`, headers: {} },
|
||||
|
@ -85,7 +84,7 @@ suite('UserDataAutoSyncService', () => {
|
|||
assert.deepEqual(target.requests, [{ type: 'GET', url: `${target.url}/v1/manifest`, headers: {} }]);
|
||||
});
|
||||
|
||||
test('test auto sync with non sync resource change does not trigger continuous syncs', async () => {
|
||||
test('test auto sync with non sync resource change triggers sync for every trigger', async () => {
|
||||
// Setup the client
|
||||
const target = new UserDataSyncTestServer();
|
||||
const client = disposableStore.add(new UserDataSyncClient(target));
|
||||
|
@ -99,12 +98,15 @@ suite('UserDataAutoSyncService', () => {
|
|||
const testObject: UserDataAutoSyncService = client.instantiationService.createInstance(TestUserDataAutoSyncService);
|
||||
|
||||
// Trigger auto sync with window focus multiple times
|
||||
for (let counter = 0; counter < 100; counter++) {
|
||||
for (let counter = 0; counter < 3; counter++) {
|
||||
await testObject.triggerAutoSync(['windowFocus']);
|
||||
}
|
||||
|
||||
// Make sure only one request is made
|
||||
assert.deepEqual(target.requests, [{ type: 'GET', url: `${target.url}/v1/manifest`, headers: {} }]);
|
||||
assert.deepEqual(target.requests, [
|
||||
{ type: 'GET', url: `${target.url}/v1/manifest`, headers: {} },
|
||||
{ type: 'GET', url: `${target.url}/v1/manifest`, headers: {} },
|
||||
{ type: 'GET', url: `${target.url}/v1/manifest`, headers: {} }
|
||||
]);
|
||||
});
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue