提交 a22b2f9a 编写于 作者: 麦壳饼's avatar 麦壳饼

调整docker以及TaskAction 适应新版本

上级 36d5ffcd
......@@ -20,11 +20,11 @@ namespace IoTSharp.TaskAction
}
public override TaskActionOutput Execute(TaskActionInput _input)
public override Task<TaskActionOutput> ExecuteAsync(TaskActionInput _input)
{
var msg = _input.DynamicInput;
var playload = System.Text.Encoding.Default.GetString( Convert.FromBase64String(msg.Payload));
return new TaskActionOutput() { Output=playload, DeviceId=_input.DeviceId};
return Task.FromResult( new TaskActionOutput() { Output=playload, DeviceId=_input.DeviceId});
}
}
}
......@@ -20,20 +20,20 @@ namespace IoTSharp.TaskAction
}
public override TaskActionOutput Execute(TaskActionInput input)
public override async Task<TaskActionOutput> ExecuteAsync(TaskActionInput input)
{
var config = JsonConvert.DeserializeObject<ModelExecutorConfig>(input.ExecutorConfig);
string contentType = "application/json";
var restclient = new RestClient(config.BaseUrl);
var request = new RestRequest(config.Url + (input.DeviceId == Guid.Empty ? "" : "/" + input.DeviceId), Method.POST);
var request = new RestRequest(config.Url + (input.DeviceId == Guid.Empty ? "" : "/" + input.DeviceId), Method.Post);
request.AddHeader("X-Access-Token",
config.Token);
request.RequestFormat = DataFormat.Json;
request.AddHeader("Content-Type", contentType);
request.AddHeader("cache-control", "no-cache");
request.AddJsonBody(JsonConvert.SerializeObject(new{ sosType="1", sosContent= input.Input, usingUserId= "zhangsan" }));
var response = restclient.Execute(request);
var response = await restclient.ExecuteAsync(request);
if (response.StatusCode == HttpStatusCode.OK)
{
var result = JsonConvert.DeserializeObject<DeviceActionResult>(response.Content);
......
......@@ -2,13 +2,13 @@
using Newtonsoft.Json.Converters;
using System;
using System.Dynamic;
using System.Threading.Tasks;
namespace IoTSharp.TaskAction
{
public abstract class ITaskAction
{
public abstract TaskActionOutput Execute(TaskActionInput _input);
public abstract Task<TaskActionOutput> ExecuteAsync(TaskActionInput _input);
public IServiceProvider ServiceProvider { get; set; }
......
......@@ -25,18 +25,18 @@ namespace IoTSharp.TaskAction
}
public override TaskActionOutput Execute(TaskActionInput input)
public override Task<TaskActionOutput> ExecuteAsync(TaskActionInput input)
{
try
{
// var cache = this.ServiceProvider.GetService(typeof(IMemoryCache)) as IMemoryCache;
return SendData(input);
return SendData(input);
}
catch (Exception ex)
{
return new TaskActionOutput() { ExecutionInfo = ex.Message, ExecutionStatus = false, };
return Task.FromResult( new TaskActionOutput() { ExecutionInfo = ex.Message, ExecutionStatus = false });
}
}
......@@ -50,7 +50,7 @@ namespace IoTSharp.TaskAction
}
private TaskActionOutput SendData(TaskActionInput input)
private async Task<TaskActionOutput> SendData(TaskActionInput input)
{
try
{
......@@ -64,13 +64,13 @@ namespace IoTSharp.TaskAction
var dd = o.Properties().Select(c => new ParamObject { keyName = c.Name, value = JPropertyToObject(c.Value.First as JProperty) }).ToList();
string contentType = "application/json";
var restclient = new RestClient(config.BaseUrl);
var request = new RestRequest(config.Url + (input.DeviceId == Guid.Empty ? "" : "/" + input.DeviceId), Method.POST);
var request = new RestRequest(config.Url + (input.DeviceId == Guid.Empty ? "" : "/" + input.DeviceId), Method.Post);
request.AddHeader("X-Access-Token",
config.Token);
request.RequestFormat = DataFormat.Json;
request.AddHeader("cache-control", "no-cache");
request.AddJsonBody(JsonConvert.SerializeObject(dd));
var response = restclient.Execute(request);
var response = await restclient.ExecuteAsync(request);
if (response.StatusCode == HttpStatusCode.OK)
{
var result = JsonConvert.DeserializeObject<MessagePullResult>(response.Content);
......@@ -98,13 +98,13 @@ namespace IoTSharp.TaskAction
var dd = o.Properties().Select(c => new ParamObject { keyName = c.Name, value = JPropertyToObject(c) }).ToList();
string contentType = "application/json";
var restclient = new RestClient(config.BaseUrl);
var request = new RestRequest(config.Url + (input.DeviceId == Guid.Empty ? "" : "/" + input.DeviceId), Method.POST);
var request = new RestRequest(config.Url + (input.DeviceId == Guid.Empty ? "" : "/" + input.DeviceId), Method.Post);
request.AddHeader("X-Access-Token",
config.Token);
request.RequestFormat = DataFormat.Json;
request.AddHeader("cache-control", "no-cache");
request.AddJsonBody(JsonConvert.SerializeObject(dd));
var response = restclient.Execute(request);
var response = await restclient.ExecuteAsync(request);
if (response.StatusCode == HttpStatusCode.OK)
{
var result = JsonConvert.DeserializeObject<MessagePullResult>(response.Content);
......
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/aspnet:6.0-buster-slim AS base
FROM mcr.microsoft.com/dotnet/aspnet:6.0-bullseye-slim AS base
MAINTAINER Yanhong Ma 2022 <mysticboy@live.com>
RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free" > /etc/apt/sources.list && \
echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free" >> /etc/apt/sources.list && \
echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free" >> /etc/apt/sources.list && \
echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free" >> /etc/apt/sources.list && \
RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free" > /etc/apt/sources.list && \
echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free" >> /etc/apt/sources.list && \
echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free" >> /etc/apt/sources.list && \
echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian-security jessie/updates main contrib non-free" >> /etc/apt/sources.list && \
apt-get -y -q update && apt-get install -y -q apt-utils libgdiplus libc6-dev lsof net-tools wget sqlite3 python3 bashtop iputils-ping inetutils-tools libssl-dev libssl1.0.0 curl && \
apt-get -y -q update && apt-get install -y -q apt-utils libgdiplus libc6-dev lsof net-tools wget sqlite3 python3 iputils-ping inetutils-tools libssl-dev libssl1.0.0 curl && \
apt-get autoremove -y && apt-get clean && apt-get autoclean && rm /var/cache/apt/* -rf && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#RUN curl -o TDengine-client.tar.gz "https://www.taosdata.com/download/download-gettingStarted.php?pkg=tdengine_linux&pkgName=TDengine-client-2.0.12.0-Linux-x64.tar.gz" && \
......@@ -27,12 +26,11 @@ EXPOSE 5684
EXPOSE 8080
FROM mcr.microsoft.com/dotnet/sdk:6.0-buster-slim AS build
FROM mcr.microsoft.com/dotnet/sdk:6.0-bullseye-slim AS build
RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free" > /etc/apt/sources.list && \
echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free" >> /etc/apt/sources.list && \
echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free" >> /etc/apt/sources.list && \
echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free" >> /etc/apt/sources.list && \
RUN echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free" > /etc/apt/sources.list && \
echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free" >> /etc/apt/sources.list && \
echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free" >> /etc/apt/sources.list && \
apt-get -y -q update && apt-get install -y -q git libssl-dev curl gnupg libcurl4 gcc g++ make gnupg2 build-essential wget && \
apt-get autoremove -y && apt-get clean && apt-get autoclean && rm /var/cache/apt/* -rf
......
......@@ -276,7 +276,7 @@ namespace IoTSharp.FlowRuleEngine
{
try
{
var result = executor.Execute(new TaskActionInput()
var result = await executor.ExecuteAsync(new TaskActionInput()
{
Input = taskoperation.Data,
DeviceId = deviceId,
......@@ -599,7 +599,7 @@ namespace IoTSharp.FlowRuleEngine
{
try
{
var result = executor.Execute(new TaskActionInput()
var result = await executor.ExecuteAsync(new TaskActionInput()
{
Input = data,
ExecutorConfig = flow.NodeProcessParams,
......@@ -607,7 +607,7 @@ namespace IoTSharp.FlowRuleEngine
});
obj = result.DynamicOutput;
obj = result.DynamicOutput;
}
catch (Exception ex)
{
......
......@@ -23,7 +23,7 @@ namespace IoTSharp.Handlers
_queue = queue;
}
public override TaskActionOutput Execute(TaskActionInput param)
public override Task<TaskActionOutput> ExecuteAsync(TaskActionInput param)
{
var result = new TaskActionOutput() { DynamicOutput = new { code = ApiCode.Success, msg = "OK" } };
try
......@@ -38,7 +38,7 @@ namespace IoTSharp.Handlers
{
result.DynamicOutput = new { code = ApiCode.Exception, msg = ex.Message };
}
return result;
return Task.FromResult( result);
}
}
}
......@@ -23,7 +23,7 @@ namespace IoTSharp.Handlers
_queue = queue;
}
public override TaskActionOutput Execute(TaskActionInput param)
public override Task<TaskActionOutput> ExecuteAsync(TaskActionInput param)
{
var result = new TaskActionOutput() { DynamicOutput = new { code = ApiCode.Success,msg="OK" } };
try
......@@ -38,7 +38,7 @@ namespace IoTSharp.Handlers
{
result.DynamicOutput = new { code = ApiCode.Exception, msg = ex.Message };
}
return result;
return Task.FromResult(result);
}
}
}
......@@ -87,7 +87,9 @@
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.0.1" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Features" Version="4.0.1" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.0.1" />
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic.Features" Version="4.0.1" />
<PackageReference Include="Microsoft.CodeAnalysis.Workspaces.Common" Version="4.0.1" />
<PackageReference Include="Microsoft.CodeAnalysis.Workspaces.MSBuild" Version="4.0.1" />
<PackageReference Include="Microsoft.Extensions.Options" Version="6.0.0" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.14.0" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.1" />
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册