Допустим есть сайт
<title>Example Domain</title>
<div>
<h1>Example Domain</h1>
<p>This domain is for use in illustrative examples in documents. You may use this
domain in literature without prior coordination or asking for permission.</p>
<p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
!block_type_ids.count.positive?
block_type_ids.empty?
.empty?
использовать .present?
false
на .valid?
package main
import (
"fmt"
"sync"
"time"
)
const (
jobsNum = 5
workersNum = 2
)
type Job struct {
id int
}
func worker(id int, jobChan <-chan Job, wg *sync.WaitGroup) {
for job := range jobChan {
process(id, job, wg)
}
}
func process(id int, job Job, wg *sync.WaitGroup) {
defer wg.Done()
fmt.Printf("Worker %d, Job start: %d\n", id, job.id)
time.Sleep(1 * time.Second)
fmt.Printf("Worker %d, Job end: %d\n", id, job.id)
}
func main() {
fmt.Println("Start")
jobChan := make(chan Job, 10)
var wg sync.WaitGroup
wg.Add(jobsNum)
// start the workers
for i := 0; i < workersNum; i++ {
go worker(i, jobChan, &wg)
}
// enqueue jobs
for i := 0; i < jobsNum; i++ {
jobChan <- Job{
id: i,
}
}
close(jobChan)
wg.Wait()
fmt.Println("Done")
}
Start
Worker 1, Job start: 1
Worker 0, Job start: 0
Worker 0, Job end: 0
Worker 0, Job start: 2
Worker 1, Job end: 1
Worker 1, Job start: 3
Worker 0, Job end: 2
Worker 0, Job start: 4
Worker 1, Job end: 3
Worker 0, Job end: 4
Done
Первое, что в голову пришло - перелить это все в несколько разных JSON-файлов по разделам.Работать с набором JSON файлов не практично. Стоит работать с СУБД.
Следом пришла мысль завести базу на SQLite со всеми нормами, и уже ее разворачивать при запуске приложения.А это уже хороший выбор. Советую начать с неё.
Какой наилучший вариант для хранения справочника и быстрого парсинга оного для подгрузки в приложение?Все справочники подгружать сразу при инициализации программы не нужно. Некоторые особо критичные данные можно подгрузить в начале, но только если они не занимают сотню МБ в памяти.
Пользователь должен периодически заходить на /api/result и видеть статусы по картинкам (в процессе\готово)