Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
徽霖
Vscode
提交
23ff7748
V
Vscode
项目概览
徽霖
/
Vscode
通知
9
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
Vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
23ff7748
编写于
5月 18, 2020
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Revert rate limit on client
上级
fe91848d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
8 addition
and
19 deletion
+8
-19
src/vs/platform/userDataSync/common/userDataAutoSyncService.ts
...s/platform/userDataSync/common/userDataAutoSyncService.ts
+1
-14
src/vs/platform/userDataSync/test/common/userDataAutoSyncService.test.ts
.../userDataSync/test/common/userDataAutoSyncService.test.ts
+7
-5
未找到文件。
src/vs/platform/userDataSync/common/userDataAutoSyncService.ts
浏览文件 @
23ff7748
...
...
@@ -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
});
...
...
src/vs/platform/userDataSync/test/common/userDataAutoSyncService.test.ts
浏览文件 @
23ff7748
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录