我试图在POST,GET等后台进行调用,以便在didReceiveRemoteNotification方法中更精确,因为它们开始作为推送通知到达.我的问题是,在我打开应用程序之前,所有Alamofire.request都不会在后台模式中调用.我现在有
我试图打开一个会话,但它不会使请求工作.
这些是我想在后台执行的(后台手机)
Alamofire.Manager(configuration: configuration).request(.GET, url, parameters: nil)
.responseJSON { (_, _, JSON, _) in
//println(JSON)
println(JSON)
REST OF THE CODE
Run Code Online (Sandbox Code Playgroud)
但是它不会起作用,即使我在这些请求下面添加代码也可以工作,但是请求的返回甚至是请求都没有.
uiapplicationdelegate swift background-task alamofire backgroundtaskidentifier
我是Django和django-background-tasks软件包的新手.
我面临一个我无法做的问题/启动后台任务,除非我强行运行命令process_tasks,即python manage.py process_tasks.我想在不运行process_tasks命令的情况下执行/启动后台任务.
settings.py
MAX_ATTEMPTS=1
BACKGROUND_TASK_RUN_ASYNC = True
Run Code Online (Sandbox Code Playgroud)
tasks.py
from background_task import background
#included necessary packages for SMTP
@background(schedule=5)
def test():
#send mail to some ids
Run Code Online (Sandbox Code Playgroud)
views.py
def index(request):
test(schedule=5)
return HttpResponse("Hello, world. ")
Run Code Online (Sandbox Code Playgroud)
忽略我的逻辑.
我正在制作一个 Django 应用程序。为了根据行和评论计算提要的排名,我正在尝试使用 django-background-tasks。我在节点模型中使用的功能是:
@background(schedule=60)
def get_score(self):
p = self.likes+self.comments # popularity
t = (now()-self.date).total_seconds()/3600 # age_in_hrs
# last_activity =
n = self.admin_score
score = (p/pow((t+1), 1.2))*n
self.score = score
return score
Run Code Online (Sandbox Code Playgroud)
但我没有看到分数有任何变化。这意味着我正在以正确的方式做这件事,但我缺少基本概念。有人可以告诉我如何使用 django-background-tasks 来安排任务或向我推荐一些现有的文档。
我正在开发一个 django 应用程序,它从 Dropbox 读取 csv 文件,解析数据并将其存储在数据库中。为此,我需要后台任务来检查文件是否被修改或更改(更新),然后更新数据库。我试过“芹菜”,但未能用 django 配置它。然后我发现django-background-tasks比 celery 配置要简单得多。我的问题是如何初始化重复任务?
它在文档中有所描述,
但我找不到任何示例来解释如何使用repeat、repeat_until或文档中提到的其他常量。
任何人都可以用例子解释以下内容吗?
notify_user(user.id, repeat=<number of seconds>, repeat_until=<datetime or None>)
Run Code Online (Sandbox Code Playgroud)
重复以秒为单位给出。提供了以下常量:Task.NEVER(默认)、Task.HOURLY、Task.DAILY、Task.WEEKLY、Task.EVERY_2_WEEKS、Task.EVERY_4_WEEKS。
我已经在ASP.NET Core 2.1应用程序中实现了BackgroundService:
public class MyBackgroundService : BackgroundService
{
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
while (true)
{
await DoSomethingAsync();
await Task.Delay(10 * 1000);
}
return Task.CompletedTask;
}
}
Run Code Online (Sandbox Code Playgroud)
我已经用我的ConfigureServices()方法注册了它:
services.AddSingleton<MyBackgroundService>();
Run Code Online (Sandbox Code Playgroud)
我目前(勉强地)通过StartAsync()从方法内部调用(而不是等待)该方法来启动它Configure():
app.ApplicationServices.GetService<SummaryCache>().StartAsync(new CancellationToken());
Run Code Online (Sandbox Code Playgroud)
启动长期运行的服务的最佳实践方法是什么?
我正在尝试在 django 中执行一些消耗大量时间的任务。为此,我将运行后台任务。
经过一些研发,我找到了两种解决方案:
芹菜与 RabbitMQ。
Django 后台任务。
这两个选项似乎都满足标准,但设置 Celery 需要一些工作。现在就第二个选项而言,设置相当简单,而且在相当短的时间内,我可以继续编写后台任务。现在我的问题是,如果我采用第二个选项:
我正在尝试设置一些BackgroundTasks在应用程序关闭时定期运行一些代码(比如每天一次)。我相信BackgroundTasksswift 上的 API 就是为了这个?(如果我弄错了,请告诉我)。我按照Apple 文档上的文章来实现它,并调整它以适应 SwiftUI。
问题:后台任务永远不会触发,但处于“待处理”状态(如图所示)
免责声明:我确实添加了该Background Modes功能并进行了检查Background fetch,Background processing并将标识符添加到Info.plist
代码:
Main- 设置应用程序委托,获取场景,设置 UserDefaults 计数器,获取所有待处理任务的按钮,显示 UserDefault 计数器的文本,添加到 UserDefault 计数器的按钮,schedule()当应用程序进入后台时调用任务
import SwiftUI
import BackgroundTasks
@main
struct GyfterApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
@Environment(\.scenePhase) var scene
@AppStorage("test") var test = 1
var body: some Scene {
WindowGroup {
VStack {
Button("Test") {
BGTaskScheduler.shared.getPendingTaskRequests { all in
print("Pending Tasks Requests", all)
}
}
Text("\(test)") …Run Code Online (Sandbox Code Playgroud) 美好的一天。考虑到Android的Socket IO库及其服务,我有一个非常具体的问题。
重要的是要提到我的设备是我正在测试的huawei p8 lite。
它在这里:
我有一个套接字Io库,该库正在我创建的服务中初始化
•我将侦听器设置为用于新消息的套接字io
•如果应用程序没有在用户进程中杀死,则一切工作都像字符。
•服务的目的是即使应用程序被杀死也保持套接字IO连接保持活动状态,以便向用户通知新消息。
•一旦应用程序被杀死,套接字IO连接即被断开
无论我尝试什么,我都会尝试所有可能的方法:隔离Service进程,为Service提供另一个进程,启动粘性,在服务销毁后立即重新创建它而不是粘性等等。
唯一有效的方法是startForeground()方法,但我不想使用它,因为它将遵循设计原则,而且我也不想显示有关正在运行的服务的任何通知。
我的问题是下一个:有人可以帮助我,告诉我即使应用程序被杀死了,我如何仍可以保持Socket IO连接的活动?
这是服务的代码。
package com.github.nkzawa.socketio.androidchat;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import android.support.annotation.Nullable;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
import android.widget.Toast;
import java.net.URISyntaxException;
import io.socket.client.IO;
import io.socket.client.Socket;
import io.socket.emitter.Emitter;
public class SocketService extends Service {
private Socket mSocket;
public static final String TAG = SocketService.class.getSimpleName();
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw …Run Code Online (Sandbox Code Playgroud) 将iPad更新到iOS 13后,我在应用程序内部使用后台任务,我的应用程序发出以下消息:
无法结束BackgroundTask:不存在标识符> 13(0xd)的后台任务,或者它可能已经结束。中断UIApplicationEndBackgroundTaskError()进行调试。
我使用UIApplicationEndBackgroundTaskError()进行了调试,但是没有得到任何结果,并且我已经在iOS 12和其他以前的版本上对其进行了测试,它运行良好。
使用iOS16.1、Swift5.7.1、XCode 14.1、
我的 SwiftUI 应用程序将完成一些后台工作。
第一个问题:定期发生的后台工作只能在应用程序仍在运行时才能完成(即,如果应用程序没有完全关闭而是被其他应用程序覆盖),这是否正确?或者您可以使用完全封闭的应用程序定期执行后台工作吗?如果是,怎么办?
第二个问题:下面的代码有什么问题?
不幸的是,这段代码没有完成任何后台工作,为什么?(我尝试过使用和不使用调试器,而且我也在实际设备上尝试过)
(当然,我已经在info.plist中输入了必要的信息并添加了后台功能)
import SwiftUI
import BackgroundTasks
@main
struct MyApp: App {
@Environment(\.scenePhase) private var phase
@State private var counter = 0;
var body: some Scene {
WindowGroup {
ZStack {
Text("\(counter)")
}
}
.onChange(of: phase) { newPhase in
switch newPhase {
case .background:
scheduleDataRefetch()
default: break
}
}
.backgroundTask(.appRefresh("com.url.myidentifier")) {
await refetch()
scheduleDataRefetch()
}
}
private func refetch() async {
if await refetchData() {
print("refetch done...")
}
}
private func refetchData() async -> …Run Code Online (Sandbox Code Playgroud) background-task ×10
django ×4
swift ×3
ios ×2
python ×2
swiftui ×2
task ×2
alamofire ×1
android ×1
asp.net-core ×1
asynchronous ×1
c# ×1
celery ×1
ios12 ×1
ios13 ×1
python-2.7 ×1
python-3.x ×1
service ×1
sockets ×1
threadpool ×1