i want to use gevent.evnet into celery.task
===

i've been working on long-polling system. i use flask + mongokit + celery + gevent.

When process in celery task, is done gevent.event.set() dosen't work. so i want to help to figure it out.(The reason why i use the gevent at the same time with celery, there is huge process to deal with in Notification system)

here is my sample code.

     #server.py
     @celery.task()
     def doing_task(uid, message):
         notification = Notification() # this is a notification Model
         notification.add(request.args.get('to'), some_notification)
         app.event.set()
         app.event.clear()

     @app.route('/main')
     def main():
         return render_template('main.html')

     @app.route('/set')
     def set():
         doing_task.delay(request.args.get('uid'), 'Notify')
         return 'OK'
     
     @app.route('/poll')
     def poll():
         uid = request.args.get('uid')
         app.event.wait()
         if is_authorized(uid): #uid 1 is a authorized account
             return Notification().get(uid)

     #main.html
     <body>
       <button>Click me</button>
     </body>
     <script>
       $('button').click(function(e) {
        $.ajax({
         'url': '/set',
         'data': 'uid=1',
         'success': function(data) {
           console.log(data);
         }
        });
        e.preventDefault();
      });

          var poll = function() {
      return $.ajax({
               'url': '/poll',
               'method': 'get',
               'async':true,
               'dataType': 'json',
               'timeout': 10000,
               'success': function(data) { 
                 console.log(data);
                 setTimeout(poll, 50);
               },
               'error':function (req,sta,er){
                 setTimeout(poll, 3000);
               }, 
             });
        };
        poll()
     </script>