mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 23:06:31 +00:00
rewrite to zmq push and pull patterns.
file load works, suite can start up
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
using Azaion.CommonSecurity.DTO;
|
||||
using Azaion.CommonSecurity.DTO.Commands;
|
||||
using MessagePack;
|
||||
using NetMQ;
|
||||
using NetMQ.Sockets;
|
||||
|
||||
namespace Azaion.CommonSecurity.Services;
|
||||
|
||||
@@ -7,6 +11,40 @@ public interface IResourceLoader
|
||||
Task<MemoryStream> Load(string fileName, CancellationToken cancellationToken = default);
|
||||
}
|
||||
|
||||
public class PythonResourceLoader : IResourceLoader
|
||||
{
|
||||
private readonly PushSocket _pushSocket = new();
|
||||
private readonly PullSocket _pullSocket = new();
|
||||
|
||||
public PythonResourceLoader(ApiCredentials credentials)
|
||||
{
|
||||
//Run python by credentials
|
||||
_pushSocket.Connect($"tcp://{SecurityConstants.SOCKET_HOST}:{SecurityConstants.SOCKET_SEND_PORT}");
|
||||
_pullSocket.Connect($"tcp://{SecurityConstants.SOCKET_HOST}:{SecurityConstants.SOCKET_RECEIVE_PORT}");
|
||||
}
|
||||
|
||||
public async Task<MemoryStream> Load(string fileName, CancellationToken cancellationToken = default)
|
||||
{
|
||||
try
|
||||
{
|
||||
var b = MessagePackSerializer.Serialize(new FileCommand
|
||||
{
|
||||
CommandType = CommandType.Load,
|
||||
Filename = fileName
|
||||
});
|
||||
_pushSocket.SendFrame(b);
|
||||
|
||||
var bytes = _pullSocket.ReceiveFrameBytes(out bool more);
|
||||
return new MemoryStream(bytes);
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new Exception($"Failed to load fil0e '{fileName}': {ex.Message}", ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class ResourceLoader(AzaionApiClient api, ApiCredentials credentials) : IResourceLoader
|
||||
{
|
||||
public async Task<MemoryStream> Load(string fileName, CancellationToken cancellationToken = default)
|
||||
|
||||
Reference in New Issue
Block a user