Site icon Hip-Hop Website Design and Development

Duplicate Cron Jobs Using wp_next_scheduled / wp_schedule_event

I’m working on a plugin to register and schedule various cron jobs. I am:

When I went into ‘Cron Events’ within Crontrol I saw that some functions were added literally hundreds of times. Specifically, in ‘Cron Events’ the function is what’s getting registered/listed, not the hook. A simplified version of my code:

class My_Cron_Manager {

    /**
     * Constructor
     */
    public function __construct() {

        add_filter( 'wp', array( $this, 'my_schedule_cron_jobs' ) );
        add_action( 'my_cron_event_func', array( $this, 'my_cron_job_func' ));

    }

    /**
     * Schedule cron Jobs
     */
    public static function my_schedule_cron_jobs() {

        if (! wp_next_scheduled ( 'my_cron_job_func' )) {
            wp_schedule_event(time(), 'twicedaily', 'my_cron_job_func');
        };

    }

    /**
     * My Function
     */
    public static function my_cron_job_func() {

        // Do Stuff

    }

}

new My_Cron_Manager();

I have a suspicion that I had an error in my code that was re-registering the function, but I’m not entirely sure. Am I utilizing wp_next_scheduled and wp_schedule_event correctly?

Can someone please let me know if my above code would be causing duplicated hook/function registration?

Thanks in advance!