Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aaltgod/awesome-counter
Программа считает кол-во вхождений строки "Go" в теле ответа. Количество горутин не превышает 5.
https://github.com/aaltgod/awesome-counter
List: awesome-counter
go
Last synced: 20 days ago
JSON representation
Программа считает кол-во вхождений строки "Go" в теле ответа. Количество горутин не превышает 5.
- Host: GitHub
- URL: https://github.com/aaltgod/awesome-counter
- Owner: aaltgod
- Created: 2021-06-28T13:16:07.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-06-28T13:47:19.000Z (over 3 years ago)
- Last Synced: 2024-10-29T14:18:28.685Z (3 months ago)
- Topics: go
- Language: Go
- Homepage:
- Size: 233 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-golang-repositories - awesome-counter - 襍イ驛 襍イ�ス驛玖ソ霑。霑ョ驛�た驍ソ �ス�ス�ス驛矩ヵ驍ス "Go" 襍イ �ス霑ョ驛�ソョ 驛具ソス襍イ霑ョ�ス險. �ス驛矩ュ驍ス�ス霑ョ�ス�ス襍イ驛 霑」驛具ソス�ス�ス驍ス驛 驛�ソョ 驛茨ソス霑ョ襍イ�ス�ス險�ソョ�ス 5. (Repositories)
README
## Задание
Программа читает из stdin строки, содержащие URL. На каждый URL нужно отправить HTTP-запрос методом GET и посчитать кол-во вхождений строки "Go" в теле ответа. В конце работы приложение выводит на экран общее кол-во найденных строк "Go" во всех переданных URL, например:
```
$ cat urls | go run src/cmd/wb-test/main.go
Count for https://golang.org/: 9
Count for https://golang.org/doc/: 64
Count for https://golang.org/compress/: 6
...
...
Total: 253
```Каждый URL должен начать обрабатываться сразу после вычитывания и параллельно с вычитыванием следующего. URL должны обрабатываться параллельно, но не более k=5 одновременно. Обработчики URL не должны порождать лишних горутин, т.е. если k=5, а обрабатываемых URL-ов всего 2, не должно создаваться 5 горутин.
Нужно обойтись без глобальных переменных и использовать только стандартную библиотеку.
Для проверки работы используем следующий файл `urls`:
```
https://golang.org/
https://golang.org/doc/
https://golang.org/pkg/compress/
https://golang.org/pkg/compress/gzip/
https://golang.org/pkg/crypto/md5/
https://golang.org/pkg/debug/pe/
https://golang.org/pkg/log/syslog/
https://golang.org/pkg/sort/
https://golang.org/pkg/strconv/
https://golang.org/pkg/strings/
https://golang.org/pkg/sync/
https://golang.org/pkg/strings/
https://golang.org/pkg/time/
https://golang.org/pkg/unicode/
https://golang.org/pkg/unsafe/
https://godoc.org/golang.org/x/benchmarks
https://godoc.org/golang.org/x/net
https://godoc.org/golang.org/x/mobile
```## Решение
| Файлы | Для чего |
| ------- | -------------- |
| main.go | Исходный код |
| urls | Входные данные |Моя система для проверки
```
Linux stepanoff-wpc 4.4.0-17134-Microsoft #48-Microsoft Fri Apr 27 18:06:00 PST 2018 x86_64 x86_64 x86_64 GNU/Linux
```Пример запуска
```
stepanoff@stepanoff-wpc:/mnt/c/Users/StepanOFF/Desktop/wildberries-test$ cat urls | go run main.go
Count for https://golang.org/ : 9
Count for https://golang.org/pkg/compress/ : 6
Count for https://golang.org/pkg/compress/gzip/ : 10
Count for https://golang.org/doc/ : 67
Count for https://golang.org/pkg/crypto/md5/ : 6
Count for https://golang.org/pkg/debug/pe/ : 8
Count for https://golang.org/pkg/log/syslog/ : 6
Count for https://golang.org/pkg/sort/ : 43
Count for https://golang.org/pkg/strings/ : 32
Count for https://golang.org/pkg/strconv/ : 31
Count for https://golang.org/pkg/sync/ : 9
Count for https://golang.org/pkg/time/ : 30
Count for https://golang.org/pkg/strings/ : 32
Count for https://golang.org/pkg/unicode/ : 24
Count for https://golang.org/pkg/unsafe/ : 9
Count for https://godoc.org/golang.org/x/benchmarks : 7
Count for https://godoc.org/golang.org/x/net : 8
Count for https://godoc.org/golang.org/x/mobile : 18
Total: 355
```