editor php Banana memperkenalkan kepada anda penggunaan gin.Konteks dalam pekerjaan cron. Gin ialah rangka kerja web bahasa Go yang popular, tetapi anda mungkin menghadapi beberapa masalah menggunakannya dalam kerja cron. Tugas cron ialah tugas yang berjalan secara berkala di latar belakang dan bukannya membalas permintaan HTTP. Oleh itu, kita tidak boleh menggunakan gin.Konteks secara langsung seperti yang kita boleh dalam aplikasi web. Walau bagaimanapun, kami boleh menggunakan gin.Context dengan mensimulasikan permintaan HTTP untuk menikmati kemudahan rangka kerja Gin dalam kerja cron. Dalam artikel ini, kami akan meneroka cara menggunakan gin.Konteks dalam pekerjaan cron dan memberikan beberapa petua dan pertimbangan praktikal.
Saya mempunyai tugas cron yang akan memanggil fungsi yang memerlukan *gin.context sebagai pernyataan yang akan diperlukan dalam proses lain dalam langkah seterusnya. Kod saya dulu kelihatan seperti ini:
_, _ = c.cr.addfunc(constant.cronrunningat(8), func() { ctx := &gin.context{} c.loan.loanrepaymentnotification(ctx) })
Tetapi ia menimbulkan ralat seperti ini:
panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x2 addr=0x38 pc=0x100d154f4]
Adakah terdapat sebarang cara untuk menjana jenis nilai yang boleh dihantar ke fungsi yang dipanggil *gin.context? Terima kasih
Jika anda perlu menggunakan kaedah ini pada tugas cron, ia bermakna MESTI TIDAK digunakan gin.Context
.
Seperti yang dinyatakan dalam dokumentasi perpustakaan:
Gin ialah rangka kerja web yang ditulis dalam Go.
Jadi apa yang anda mahu lakukan dengan gin.Context
做的事情可以通过另一种方式来实现,例如 context.Context
boleh dicapai dengan cara lain, seperti context.Context
.
Ia bergantung pada apa yang anda mahu lakukan pada akhirnya, tetapi anda harus mengubahnya dengan LoanRepaidNotification
或其底层方法来重构代码,以便在 cron 作业中仅使用 context.Context
.
Atas ialah kandungan terperinci Menggunakan *gin.Context dalam kerja cron. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!