Advertisement

The adhoc tasks \mod_qbank\task\transfer_question_categories and \mod_qbank\task\transfer_questions are not yet complete

 Error tersebut muncul karena Moodle sedang menjalankan proses background (Adhoc Tasks) untuk memindahkan kategori soal dan soal ke Shared Question Bank (fitur baru di Moodle 4.x).

Task ini biasanya berjalan otomatis, tetapi bisa gagal atau belum selesai, sehingga Moodle mengunci fitur manajemen soal sampai task tersebut selesai.

Berikut penjelasan penyebab & cara memperbaikinya:


✅ Penyebab Utama

  1. Upgrade Moodle ke versi baru — sehingga Moodle perlu memigrasikan question bank ke struktur baru.

  2. Adhoc task gagal karena:

    • Cron Moodle tidak berjalan.

    • Ada error pada database.

    • Ada soal/kategori rusak (invalid context).

  3. Cron tidak pernah dijalankan
    Moodle sangat bergantung pada cron untuk menyelesaikan task seperti ini.


✅ Cara Mengatasinya

1. Jalankan Cron Moodle (wajib)

Jika server Linux:

php /path/to/moodle/admin/cli/cron.php

Contoh:

php /var/www/html/moodle/admin/cli/cron.php

Jalankan beberapa kali sampai tidak ada error.


2. Cek Status Adhoc Task

Jalankan:

php /var/www/html/moodle/admin/cli/adhoc_task.php --execute

Atau lihat daftar task yang gagal:

php /var/www/html/moodle/admin/cli/scheduled_task.php --list

3. Paksa Task Dijalankan

Jika ingin memaksa hanya task tersebut:

Transfer Question Categories

php /var/www/html/moodle/admin/cli/adhoc_task.php --execute="\mod_qbank\task\transfer_question_categories"

Transfer Questions

php /var/www/html/moodle/admin/cli/adhoc_task.php --execute="\mod_qbank\task\transfer_questions"

4. Pastikan Cron di server berjalan otomatis

Tambahkan di crontab (Linux):

* * * * * /usr/bin/php /var/www/html/moodle/admin/cli/cron.php >/dev/null 2>&1

5. Jika tetap error

Masalah bisa terjadi karena:

  • Kategori soal berada pada context lama (misalnya dari course yang dihapus).

  • Database rusak.

Solusi sementara:

  • Backup semua soal.

  • Clear entries task yang corrupt dari tabel mdl_task_adhoc.

  • Restore soal ke kategori baru.


☑️ Cara agar Moodle cron berjalan otomatis (tanpa terminal)

  1. Buka crontab:

crontab -e
  1. Tambahkan baris berikut:

* * * * * /usr/bin/php /var/www/html/moodle/admin/cli/cron.php >/dev/null 2>&1
  1. Save & exit.

Setelah itu:

  • Cron akan berjalan otomatis di background setiap menit.

  • Anda tidak perlu membuka SSH lagi.

  • Moodle 5.0 akan memproses adhoc task (termasuk transfer question bank) secara otomatis.


🔍 Cara cek apakah cron berjalan otomatis

Setelah 2–3 menit, masuk ke Moodle:

Site administration → Server → Tasks → Task log

Jika ada log terbaru setiap menit → cron sudah aktif.


📌 Kesimpulan

  • Anda tidak perlu menjalankan cron terus menerus.

  • Anda aman menutup SSH, asal cron sudah di crontab.

  • Moodle 5.0 harus pakai cron otomatis agar error seperti transfer_question_categories tidak muncul lagi.


Post a Comment

0 Comments