Maison >développement back-end >Golang >Utilisation de *gin.Context dans les tâches cron

Utilisation de *gin.Context dans les tâches cron

WBOY
WBOYavant
2024-02-10 19:30:08616parcourir

在 cron 作业中使用 *gin.Context

l'éditeur php Banana vous présente l'utilisation de gin.Context dans les tâches cron. Gin est un framework Web en langage Go populaire, mais vous pouvez rencontrer des problèmes lors de son utilisation dans les tâches cron. Une tâche cron est une tâche qui s'exécute périodiquement en arrière-plan au lieu de répondre aux requêtes HTTP. Par conséquent, nous ne pouvons pas utiliser gin.Context directement comme nous le pouvons dans les applications Web. Cependant, nous pouvons utiliser gin.Context en simulant des requêtes HTTP pour profiter de la commodité du framework Gin dans les tâches cron. Dans cet article, nous explorerons comment utiliser gin.Context dans les tâches cron et fournirons quelques conseils et considérations pratiques.

Contenu de la question

J'ai une tâche cron qui appellera une fonction qui nécessite *gin.context comme instruction qui sera nécessaire dans d'autres processus à l'étape suivante. Mon code ressemblait à ceci :

_, _ = c.cr.addfunc(constant.cronrunningat(8), func() {
        ctx := &gin.context{}
        c.loan.loanrepaymentnotification(ctx)
    })

Mais cela génère une erreur comme celle-ci :

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x2 addr=0x38 pc=0x100d154f4]

Existe-t-il un moyen de générer un type de valeur pouvant être transmis à la fonction appelée *gin.context ? Merci

Solution de contournement

Si vous devez utiliser cette méthode sur une tâche cron, cela signifie NE DOIT PAS être utilisée gin.Context. Comme spécifié dans la documentation de la bibliothèque :

Gin est un framework web écrit en Go.

Donc, ce que vous voulez faire avec gin.Context 做的事情可以通过另一种方式来实现,例如 context.Context peut être réalisé d'une autre manière, comme context.Context . Cela dépend de ce que vous voulez faire au final, mais vous devriez le changer d'ici LoanRepaidNotification 或其底层方法来重构代码,以便在 cron 作业中仅使用 context.Context .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer