解析,云代码在删除之前

时间:2015-07-13 09:52:57

标签: swift parse-platform cloud-code

在我删除我的用户之前,我想删除另一个类中的一些对象。这在Swift中运行良好。

Parse.Cloud.beforeDelete(Parse.User, function(request, response) {
  var query = new Parse.Query('ListSettings');
  query.find({
  success: function(results) {

      for (var i = 0; i < results.length; i+=1) {
        results[i].destroy();
      }
      response.success(results);
    },
    error: function() {results
      response.error("error");
    }
  });
});

现在我想将此转移到cloudCode。它的工作量大约是十分之一,但我不知道为什么或什么时候有效,有时候不知道。

from Queue import Queue
from threading import Thread

def worker():
    while True:
        item = q.get()
        do_work(item)
        q.task_done()

def do_work(url):
  print "Processing URL:" + url 

q = Queue()
for i in range(5):
     t = Thread(target=worker)
     t.daemon = True
     t.start()

for item in ['url_' + str(i) for i in range(2000)]:
    q.put(item)

q.join()       # block until all tasks are done

请帮助。

2 个答案:

答案 0 :(得分:0)

您可以一次删除所有对象,如果成功则返回成功,而不是逐个删除。您可以通过以下代码块执行此操作;

   query.find().then(function (results) 
   {
      Parse.Object.destroyAll(results); 
      response.success("Success"); 
    }, 
    function (error) 
    {
      response.success("Error"); 
    })

希望这有帮助。解答。

答案 1 :(得分:0)

我们走了,这对我有用。

Parse.Cloud.beforeDelete(Parse.User, function(request, response) {
    var query = new Parse.Query('ListSettings');
    query.find().then(function(results) {

      return Parse.Object.destroyAll(results);
    }).then(function() {
      response.success();

    }, function(error) {
      response.error("Error removing ListSettings.");

    });
});