Compare commits
No commits in common. "cd547637bb07c76fa6f4b2ad569961819839f873" and "adfa62854a74608ec4ef8af9b310eb549fd77e01" have entirely different histories.
cd547637bb
...
adfa62854a
@ -1,10 +1,10 @@
|
|||||||
# 复制到 tracks .gitea/workflows/deploy.yml
|
# 复制到 tracks .gitea/workflows/deploy.yml
|
||||||
# push master → prod;push test → test
|
|
||||||
name: Build and Deploy
|
name: Build and Deploy
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [master, test]
|
branches: [master, main]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
env:
|
env:
|
||||||
CSPROJ: src/TrackCenter.Api/TrackCenter.Api.csproj
|
CSPROJ: src/TrackCenter.Api/TrackCenter.Api.csproj
|
||||||
@ -21,47 +21,14 @@ jobs:
|
|||||||
- name: Build and deploy
|
- name: Build and deploy
|
||||||
run: |
|
run: |
|
||||||
set -euxo pipefail
|
set -euxo pipefail
|
||||||
REF="${{ gitea.ref_name }}"
|
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
|
||||||
case "$REF" in
|
TAG="${{ gitea.sha }}"
|
||||||
test) TARGET=test ;;
|
IMG="${{ env.TCR_REGISTRY }}/${{ env.TCR_NAMESPACE }}/${{ env.IMAGE_NAME }}:${TAG}"
|
||||||
master) TARGET=prod ;;
|
|
||||||
*) echo "unsupported branch: $REF"; exit 1 ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
SHA="${{ gitea.sha }}"
|
|
||||||
REPO="${{ gitea.repository }}"
|
REPO="${{ gitea.repository }}"
|
||||||
test -n "$REPO" && [[ "$REPO" == */* ]]
|
test -n "$REPO" && [[ "$REPO" == */* ]]
|
||||||
|
echo "REPO=$REPO TAG=$TAG host=$(hostname)"
|
||||||
case "$TARGET" in
|
|
||||||
test) TAG="test-${SHA}" ;;
|
|
||||||
*) TAG="${SHA}" ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
IMG="${{ env.TCR_REGISTRY }}/${{ env.TCR_NAMESPACE }}/${{ env.IMAGE_NAME }}:${TAG}"
|
|
||||||
echo "TARGET=$TARGET REF=$REF REPO=$REPO TAG=$TAG host=$(hostname)"
|
|
||||||
|
|
||||||
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
|
|
||||||
unset NAMESPACE
|
|
||||||
cd /data/k3s
|
cd /data/k3s
|
||||||
./scripts/ci-publish-container.sh "$REPO" "${{ env.CSPROJ }}" \
|
./scripts/ci-publish-container.sh "$REPO" "${{ env.CSPROJ }}" \
|
||||||
"${{ env.IMAGE_NAME }}" "$TAG" "$SHA"
|
"${{ env.IMAGE_NAME }}" "$TAG" "$TAG"
|
||||||
|
|
||||||
case "$TARGET" in
|
|
||||||
test)
|
|
||||||
export KUBECONFIG=/etc/rancher/k3s/k3s-test.yaml
|
|
||||||
export NAMESPACE=test
|
|
||||||
export MANIFEST_ROOT=/data/k3s-test
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
|
|
||||||
export NAMESPACE=prod
|
|
||||||
export MANIFEST_ROOT=/data/k3s
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
if [[ ! -f "$KUBECONFIG" ]]; then
|
|
||||||
echo "FAIL: missing KUBECONFIG=$KUBECONFIG host=$(hostname) uid=$(id -u)"
|
|
||||||
ls -la /etc/rancher/k3s/ /root/.kube/ 2>/dev/null || true
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
./scripts/ci-deploy-api.sh "${{ env.DEPLOY_NAME }}" \
|
./scripts/ci-deploy-api.sh "${{ env.DEPLOY_NAME }}" \
|
||||||
"${{ env.CONTAINER_NAME }}" "$IMG"
|
"${{ env.CONTAINER_NAME }}" "$IMG"
|
||||||
|
|||||||
@ -14,17 +14,17 @@ public static class WarningCalcServiceExtension
|
|||||||
{
|
{
|
||||||
public static void AddWarningCalcServices(this IServiceCollection services, IConfiguration conf)
|
public static void AddWarningCalcServices(this IServiceCollection services, IConfiguration conf)
|
||||||
{
|
{
|
||||||
// Kafka 已按集群隔离,主题/消费组不再拼 Environment 后缀
|
var env = "-" + conf.GetValue<string>("Environment")!.ToLower();
|
||||||
// 预警信号批处理后台任务
|
// 预警信号批处理后台任务
|
||||||
services.AddHostedService<WarningCalcBackgroundService>();
|
services.AddHostedService<WarningCalcBackgroundService>();
|
||||||
|
|
||||||
// 预警信号
|
// 预警信号
|
||||||
RegisterConsumer<WarningSignalKey, WarningSignal>(services, conf, GlobalConst.WarningKafkaGroup, new[] { GlobalConst.WarningKafkaTopic });
|
RegisterConsumer<WarningSignalKey, WarningSignal>(services, conf, GlobalConst.WarningKafkaGroup + env, new[] { GlobalConst.WarningKafkaTopic + env });
|
||||||
RegisterProducer<WarningSignalKey, WarningSignal>(services, conf, GlobalConst.WarningKafkaTopic);
|
RegisterProducer<WarningSignalKey, WarningSignal>(services, conf, GlobalConst.WarningKafkaTopic + env);
|
||||||
|
|
||||||
// 预警信号DLX
|
// 预警信号DLX
|
||||||
RegisterConsumer<int, WarningSignal>(services, conf, GlobalConst.WarningDLXKafkaGroup, new[] { GlobalConst.WarningDLXKafkaTopic });
|
RegisterConsumer<int, WarningSignal>(services, conf, GlobalConst.WarningDLXKafkaGroup + env, new[] { GlobalConst.WarningDLXKafkaTopic + env });
|
||||||
RegisterProducer<int, WarningSignal>(services, conf, GlobalConst.WarningDLXKafkaTopic);
|
RegisterProducer<int, WarningSignal>(services, conf, GlobalConst.WarningDLXKafkaTopic + env);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void RegisterConsumer<TKey, TValue>(IServiceCollection services, IConfiguration conf, string groupId, string[] subTopic)
|
private static void RegisterConsumer<TKey, TValue>(IServiceCollection services, IConfiguration conf, string groupId, string[] subTopic)
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Confluent.Kafka;
|
using Confluent.Kafka;
|
||||||
|
using Microsoft.Extensions.Configuration;
|
||||||
using TrackCenter.Application.Services.Warning.Signals;
|
using TrackCenter.Application.Services.Warning.Signals;
|
||||||
using TrackCenter.Domain.Aggregates.TrackDetailsAggregate;
|
using TrackCenter.Domain.Aggregates.TrackDetailsAggregate;
|
||||||
|
|
||||||
@ -11,11 +12,13 @@ public sealed class WarningSignalPublisher : IDisposable, ISingletonDependency
|
|||||||
{
|
{
|
||||||
private readonly IProducer<WarningSignalKey, WarningSignal> _producer;
|
private readonly IProducer<WarningSignalKey, WarningSignal> _producer;
|
||||||
private readonly IProducer<int, WarningSignal> _dlxProducer;
|
private readonly IProducer<int, WarningSignal> _dlxProducer;
|
||||||
|
private readonly string env;
|
||||||
|
|
||||||
public WarningSignalPublisher(IProducer<WarningSignalKey, WarningSignal> producer, IProducer<int, WarningSignal> dlxProducer)
|
public WarningSignalPublisher(IProducer<WarningSignalKey, WarningSignal> producer, IProducer<int, WarningSignal> dlxProducer, IConfiguration conf)
|
||||||
{
|
{
|
||||||
_producer = producer;
|
_producer = producer;
|
||||||
_dlxProducer = dlxProducer;
|
_dlxProducer = dlxProducer;
|
||||||
|
env = "-" + conf.GetValue<string>("Environment")!.ToLower();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PublishSignal(WarningSignalType type, List<TrackDetailsIndex> tracks)
|
public void PublishSignal(WarningSignalType type, List<TrackDetailsIndex> tracks)
|
||||||
@ -26,7 +29,7 @@ public sealed class WarningSignalPublisher : IDisposable, ISingletonDependency
|
|||||||
|
|
||||||
public void PublishSignal(WarningSignalType type, TrackDetailsIndex track)
|
public void PublishSignal(WarningSignalType type, TrackDetailsIndex track)
|
||||||
{
|
{
|
||||||
_producer.Produce(GlobalConst.WarningKafkaTopic, new Message<WarningSignalKey, WarningSignal>
|
_producer.Produce(GlobalConst.WarningKafkaTopic + env, new Message<WarningSignalKey, WarningSignal>
|
||||||
{
|
{
|
||||||
Key = new WarningSignalKey(type, track.OrderId),
|
Key = new WarningSignalKey(type, track.OrderId),
|
||||||
Value = WarningSignal.FromTrack(track, type)
|
Value = WarningSignal.FromTrack(track, type)
|
||||||
@ -35,12 +38,13 @@ public sealed class WarningSignalPublisher : IDisposable, ISingletonDependency
|
|||||||
|
|
||||||
public Task PublishSignalAsync(Message<WarningSignalKey, WarningSignal> msg, CancellationToken ct = default)
|
public Task PublishSignalAsync(Message<WarningSignalKey, WarningSignal> msg, CancellationToken ct = default)
|
||||||
{
|
{
|
||||||
return _producer.ProduceAsync(GlobalConst.WarningKafkaTopic, msg, ct);
|
return _producer.ProduceAsync(GlobalConst.WarningKafkaTopic + env, msg, ct);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Task PublishDlxSignalAsync(Message<int, WarningSignal> message, CancellationToken ct = default)
|
public Task PublishDlxSignalAsync(Message<int, WarningSignal> message, CancellationToken ct = default)
|
||||||
{
|
{
|
||||||
return _dlxProducer.ProduceAsync(GlobalConst.WarningDLXKafkaTopic, message, ct);
|
return _dlxProducer.ProduceAsync(GlobalConst.WarningDLXKafkaTopic + env, message, ct);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user