我使用 Perfect Framework 创建了一个 Swift 3.0 服务器。一切都按预期工作,但我正在尝试了解是否有更好的方法来做一些事情。
来自 iOS 背景,我知道总是在不同的线程中调用任何阻塞函数。在服务器中开发时这仍然成立吗?
例如,如果我有一个长阻塞任务(例如发出另一个请求或执行大型数据库查询),那么同步调用它是否会有所不同:
routes.add(method: .get, uri: "/", handler: { request, response in
longSynchronousTask()
response.appendBody(string: "Finished")
response.completed()
})
还是我应该异步执行此操作?
routes.add(method: .get, uri: "/", handler: { request, response in
longAsynchronousTask(completion: {
response.appendBody(string: "Finished")
response.completed()
})
})