Skip to content

Commit fb755d1

Browse files
Use the crawler.ConcurrencyConfig structure in the crawler.CrawlByConcurrentHandler() function
1 parent cf4707b commit fb755d1

File tree

4 files changed

+35
-30
lines changed

4 files changed

+35
-30
lines changed

README.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -308,10 +308,14 @@ func main() {
308308

309309
crawler.CrawlByConcurrentHandler(
310310
context.Background(),
311-
runtime.NumCPU(),
312-
1000,
313-
runtime.NumCPU(),
314-
1000,
311+
crawler.ConcurrencyConfig{
312+
ConcurrencyFactor: runtime.NumCPU(),
313+
BufferSize: 1000,
314+
},
315+
crawler.ConcurrencyConfig{
316+
ConcurrencyFactor: runtime.NumCPU(),
317+
BufferSize: 1000,
318+
},
315319
[]string{server.URL},
316320
crawler.CrawlDependencies{
317321
LinkExtractor: extractors.RepeatingExtractor{

crawl.go

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,22 +58,19 @@ func Crawl(
5858
// CrawlByConcurrentHandler ...
5959
func CrawlByConcurrentHandler(
6060
ctx context.Context,
61-
concurrencyFactor int,
62-
bufferSize int,
63-
handlerConcurrencyFactor int,
64-
handlerBufferSize int,
61+
concurrencyConfig ConcurrencyConfig,
62+
handlerConcurrencyConfig ConcurrencyConfig,
6563
links []string,
6664
dependencies CrawlDependencies,
6765
) {
66+
handlerConcurrencyFactor, handlerBufferSize :=
67+
handlerConcurrencyConfig.ConcurrencyFactor,
68+
handlerConcurrencyConfig.BufferSize
6869
concurrentHandler :=
6970
handlers.NewConcurrentHandler(handlerBufferSize, dependencies.LinkHandler)
7071
go concurrentHandler.RunConcurrently(ctx, handlerConcurrencyFactor)
7172
defer concurrentHandler.Stop()
7273

73-
concurrencyConfig := ConcurrencyConfig{
74-
ConcurrencyFactor: concurrencyFactor,
75-
BufferSize: bufferSize,
76-
}
7774
Crawl(ctx, concurrencyConfig, links, CrawlDependencies{
7875
LinkExtractor: dependencies.LinkExtractor,
7976
LinkChecker: dependencies.LinkChecker,

crawl_test.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -205,10 +205,8 @@ func TestCrawl(test *testing.T) {
205205
func TestCrawlByConcurrentHandler(test *testing.T) {
206206
type args struct {
207207
ctx context.Context
208-
concurrencyFactor int
209-
bufferSize int
210-
handlerConcurrencyFactor int
211-
handlerBufferSize int
208+
concurrencyConfig ConcurrencyConfig
209+
handlerConcurrencyConfig ConcurrencyConfig
212210
links []string
213211
dependencies CrawlDependencies
214212
}
@@ -220,12 +218,16 @@ func TestCrawlByConcurrentHandler(test *testing.T) {
220218
{
221219
name: "success",
222220
args: args{
223-
ctx: context.Background(),
224-
concurrencyFactor: 10,
225-
bufferSize: 1000,
226-
handlerConcurrencyFactor: 10,
227-
handlerBufferSize: 1000,
228-
links: []string{"http://example.com/"},
221+
ctx: context.Background(),
222+
concurrencyConfig: ConcurrencyConfig{
223+
ConcurrencyFactor: 10,
224+
BufferSize: 1000,
225+
},
226+
handlerConcurrencyConfig: ConcurrencyConfig{
227+
ConcurrencyFactor: 10,
228+
BufferSize: 1000,
229+
},
230+
links: []string{"http://example.com/"},
229231
dependencies: CrawlDependencies{
230232
LinkExtractor: func() models.LinkExtractor {
231233
threadIDChecker := mock.MatchedBy(func(threadID int) bool {
@@ -302,10 +304,8 @@ func TestCrawlByConcurrentHandler(test *testing.T) {
302304
test.Run(data.name, func(test *testing.T) {
303305
CrawlByConcurrentHandler(
304306
data.args.ctx,
305-
data.args.concurrencyFactor,
306-
data.args.bufferSize,
307-
data.args.handlerConcurrencyFactor,
308-
data.args.handlerBufferSize,
307+
data.args.concurrencyConfig,
308+
data.args.handlerConcurrencyConfig,
309309
data.args.links,
310310
data.args.dependencies,
311311
)

examples_test.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -164,10 +164,14 @@ func ExampleCrawl_withConcurrentHandling() {
164164

165165
crawler.CrawlByConcurrentHandler(
166166
context.Background(),
167-
runtime.NumCPU(),
168-
1000,
169-
runtime.NumCPU(),
170-
1000,
167+
crawler.ConcurrencyConfig{
168+
ConcurrencyFactor: runtime.NumCPU(),
169+
BufferSize: 1000,
170+
},
171+
crawler.ConcurrencyConfig{
172+
ConcurrencyFactor: runtime.NumCPU(),
173+
BufferSize: 1000,
174+
},
171175
[]string{server.URL},
172176
crawler.CrawlDependencies{
173177
LinkExtractor: extractors.RepeatingExtractor{

0 commit comments

Comments
 (0)