Skip to content

Conversation

@Denzol
Copy link
Collaborator

@Denzol Denzol commented Dec 13, 2022

Реализации очереди передачи данных для генерации шаблонов и на их основе потом сертификатов с использованием RabbitMQ.
Сырое...исключительно для обсуждения.
В папке app добавлен пакет queu.
В файле main.go стартовый код.

data <- k
}

<-forever
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Как выйти?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

По результатам трех дней мозгового штурма я так понял, что эта часть кода работает постоянно в ожидании поступления запроса, после чего на основании входящих данных выполняем полный цикл генерации сертификата (примерно как ниже, обработку ошибок убрал, чтобы сократить):

go func() {
for msg := range msgs {

		err = json.Unmarshal(msg.Body, &p)

		cg := certgenerator.New(p)
		
		err = cg.ValidateData()
		
		storage, err := local.New()

		tmpl, err := storage.GetTemplate("template")
		
		certHTML, err := cg.GenerateCertHTML(tmpl)
		
		pdfgen, err := htmltopdf.New()
		
		pdf, err := pdfgen.RenderHtmlToPdf(certHTML)
		
		err = storage.SaveCertificate("file name", pdf)
		
		fmt.Println("finish")
	}
}()
<-forever

}
выход будет в случае разрыва соединения или закрытия канала rabbit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants