Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
webmagic
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
沈俊林
webmagic
Commits
266083fa
Commit
266083fa
authored
Nov 29, 2017
by
yihy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Fix] #698 Repair using redis,Request additional information is lost
parent
e5db538c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
31 additions
and
4 deletions
+31
-4
RedisScheduler.java
.../java/us/codecraft/webmagic/scheduler/RedisScheduler.java
+31
-4
No files found.
webmagic-extension/src/main/java/us/codecraft/webmagic/scheduler/RedisScheduler.java
View file @
266083fa
...
...
@@ -2,6 +2,7 @@ package us.codecraft.webmagic.scheduler;
import
com.alibaba.fastjson.JSON
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
redis.clients.jedis.Jedis
;
import
redis.clients.jedis.JedisPool
;
import
redis.clients.jedis.JedisPoolConfig
;
...
...
@@ -60,7 +61,7 @@ public class RedisScheduler extends DuplicateRemovedScheduler implements Monitor
Jedis
jedis
=
pool
.
getResource
();
try
{
jedis
.
rpush
(
getQueueKey
(
task
),
request
.
getUrl
());
if
(
request
.
getExtras
()
!=
null
)
{
if
(
CheckForAdditionalInfo
(
request
)
)
{
String
field
=
DigestUtils
.
shaHex
(
request
.
getUrl
());
String
value
=
JSON
.
toJSONString
(
request
);
jedis
.
hset
((
ITEM_PREFIX
+
task
.
getUUID
()),
field
,
value
);
...
...
@@ -70,6 +71,33 @@ public class RedisScheduler extends DuplicateRemovedScheduler implements Monitor
}
}
private
boolean
CheckForAdditionalInfo
(
Request
request
)
{
if
(
request
==
null
)
{
return
false
;
}
if
(!
request
.
getHeaders
().
isEmpty
()
||
!
request
.
getCookies
().
isEmpty
())
{
return
true
;
}
if
(
StringUtils
.
isNotBlank
(
request
.
getCharset
())
||
StringUtils
.
isNotBlank
(
request
.
getMethod
()))
{
return
true
;
}
if
(
request
.
isBinaryContent
()
||
request
.
getRequestBody
()
!=
null
)
{
return
true
;
}
if
(
request
.
getExtras
()
!=
null
&&
!
request
.
getExtras
().
isEmpty
())
{
return
true
;
}
if
(
request
.
getPriority
()
!=
0L
)
{
return
true
;
}
return
false
;
}
@Override
public
synchronized
Request
poll
(
Task
task
)
{
Jedis
jedis
=
pool
.
getResource
();
...
...
@@ -85,7 +113,7 @@ public class RedisScheduler extends DuplicateRemovedScheduler implements Monitor
Request
o
=
JSON
.
parseObject
(
new
String
(
bytes
),
Request
.
class
);
return
o
;
}
Request
request
=
new
Request
(
url
);
Request
request
=
new
Request
(
url
);
return
request
;
}
finally
{
pool
.
returnResource
(
jedis
);
...
...
@@ -100,8 +128,7 @@ public class RedisScheduler extends DuplicateRemovedScheduler implements Monitor
return
QUEUE_PREFIX
+
task
.
getUUID
();
}
protected
String
getItemKey
(
Task
task
)
{
protected
String
getItemKey
(
Task
task
)
{
return
ITEM_PREFIX
+
task
.
getUUID
();
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment