提交 23ff7748 编写于 作者: S Sandeep Somavarapu

Revert rate limit on client

上级 fe91848d
......@@ -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: {} }
]);
});
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册