Skip to content
Snippets Groups Projects
Commit c8bd1397 authored by syuilo's avatar syuilo
Browse files

drop lastCommunicatedAt of instance

parent 7093573f
No related branches found
No related tags found
No related merge requests found
Showing
with 19 additions and 27 deletions
export class removeLastCommunicatedAt1672704017999 {
name = 'removeLastCommunicatedAt1672704017999'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "lastCommunicatedAt"`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "instance" ADD "lastCommunicatedAt" TIMESTAMP WITH TIME ZONE NOT NULL`);
}
}
...@@ -35,7 +35,6 @@ export class FederatedInstanceService { ...@@ -35,7 +35,6 @@ export class FederatedInstanceService {
id: this.idService.genId(), id: this.idService.genId(),
host, host,
caughtAt: new Date(), caughtAt: new Date(),
lastCommunicatedAt: new Date(),
}).then(x => this.instancesRepository.findOneByOrFail(x.identifiers[0])); }).then(x => this.instancesRepository.findOneByOrFail(x.identifiers[0]));
this.cache.set(host, i); this.cache.set(host, i);
......
...@@ -86,7 +86,7 @@ export default class FederationChart extends Chart<typeof schema> { ...@@ -86,7 +86,7 @@ export default class FederationChart extends Chart<typeof schema> {
.where(`instance.host IN (${ subInstancesQuery.getQuery() })`) .where(`instance.host IN (${ subInstancesQuery.getQuery() })`)
.andWhere(meta.blockedHosts.length === 0 ? '1=1' : 'instance.host NOT IN (:...blocked)', { blocked: meta.blockedHosts }) .andWhere(meta.blockedHosts.length === 0 ? '1=1' : 'instance.host NOT IN (:...blocked)', { blocked: meta.blockedHosts })
.andWhere('instance.isSuspended = false') .andWhere('instance.isSuspended = false')
.andWhere('instance.lastCommunicatedAt > :gt', { gt: new Date(Date.now() - (1000 * 60 * 60 * 24 * 30)) }) .andWhere('instance.isNotResponding = false')
.getRawOne() .getRawOne()
.then(x => parseInt(x.count, 10)), .then(x => parseInt(x.count, 10)),
this.instancesRepository.createQueryBuilder('instance') this.instancesRepository.createQueryBuilder('instance')
...@@ -94,7 +94,7 @@ export default class FederationChart extends Chart<typeof schema> { ...@@ -94,7 +94,7 @@ export default class FederationChart extends Chart<typeof schema> {
.where(`instance.host IN (${ pubInstancesQuery.getQuery() })`) .where(`instance.host IN (${ pubInstancesQuery.getQuery() })`)
.andWhere(meta.blockedHosts.length === 0 ? '1=1' : 'instance.host NOT IN (:...blocked)', { blocked: meta.blockedHosts }) .andWhere(meta.blockedHosts.length === 0 ? '1=1' : 'instance.host NOT IN (:...blocked)', { blocked: meta.blockedHosts })
.andWhere('instance.isSuspended = false') .andWhere('instance.isSuspended = false')
.andWhere('instance.lastCommunicatedAt > :gt', { gt: new Date(Date.now() - (1000 * 60 * 60 * 24 * 30)) }) .andWhere('instance.isNotResponding = false')
.getRawOne() .getRawOne()
.then(x => parseInt(x.count, 10)), .then(x => parseInt(x.count, 10)),
]); ]);
......
...@@ -33,7 +33,6 @@ export class InstanceEntityService { ...@@ -33,7 +33,6 @@ export class InstanceEntityService {
notesCount: instance.notesCount, notesCount: instance.notesCount,
followingCount: instance.followingCount, followingCount: instance.followingCount,
followersCount: instance.followersCount, followersCount: instance.followersCount,
lastCommunicatedAt: instance.lastCommunicatedAt.toISOString(),
isNotResponding: instance.isNotResponding, isNotResponding: instance.isNotResponding,
isSuspended: instance.isSuspended, isSuspended: instance.isSuspended,
isBlocked: meta.blockedHosts.includes(instance.host), isBlocked: meta.blockedHosts.includes(instance.host),
......
...@@ -75,12 +75,6 @@ export class Instance { ...@@ -75,12 +75,6 @@ export class Instance {
}) })
public latestRequestReceivedAt: Date | null; public latestRequestReceivedAt: Date | null;
/**
* このインスタンスと最後にやり取りした日時
*/
@Column('timestamp with time zone')
public lastCommunicatedAt: Date;
/** /**
* このインスタンスと不通かどうか * このインスタンスと不通かどうか
*/ */
......
...@@ -32,11 +32,6 @@ export const packedFederationInstanceSchema = { ...@@ -32,11 +32,6 @@ export const packedFederationInstanceSchema = {
type: 'number', type: 'number',
optional: false, nullable: false, optional: false, nullable: false,
}, },
lastCommunicatedAt: {
type: 'string',
optional: false, nullable: false,
format: 'date-time',
},
isNotResponding: { isNotResponding: {
type: 'boolean', type: 'boolean',
optional: false, nullable: false, optional: false, nullable: false,
......
...@@ -86,7 +86,6 @@ export class DeliverProcessorService { ...@@ -86,7 +86,6 @@ export class DeliverProcessorService {
this.federatedInstanceService.registerOrFetchInstanceDoc(host).then(i => { this.federatedInstanceService.registerOrFetchInstanceDoc(host).then(i => {
this.instancesRepository.update(i.id, { this.instancesRepository.update(i.id, {
latestStatus: 200, latestStatus: 200,
lastCommunicatedAt: new Date(),
isNotResponding: false, isNotResponding: false,
}); });
......
...@@ -179,7 +179,6 @@ export class InboxProcessorService { ...@@ -179,7 +179,6 @@ export class InboxProcessorService {
this.federatedInstanceService.registerOrFetchInstanceDoc(authUser.user.host).then(i => { this.federatedInstanceService.registerOrFetchInstanceDoc(authUser.user.host).then(i => {
this.instancesRepository.update(i.id, { this.instancesRepository.update(i.id, {
latestRequestReceivedAt: new Date(), latestRequestReceivedAt: new Date(),
lastCommunicatedAt: new Date(),
isNotResponding: false, isNotResponding: false,
}); });
......
...@@ -64,8 +64,6 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { ...@@ -64,8 +64,6 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
case '-followers': query.orderBy('instance.followersCount', 'ASC'); break; case '-followers': query.orderBy('instance.followersCount', 'ASC'); break;
case '+caughtAt': query.orderBy('instance.caughtAt', 'DESC'); break; case '+caughtAt': query.orderBy('instance.caughtAt', 'DESC'); break;
case '-caughtAt': query.orderBy('instance.caughtAt', 'ASC'); break; case '-caughtAt': query.orderBy('instance.caughtAt', 'ASC'); break;
case '+lastCommunicatedAt': query.orderBy('instance.lastCommunicatedAt', 'DESC'); break;
case '-lastCommunicatedAt': query.orderBy('instance.lastCommunicatedAt', 'ASC'); break;
default: query.orderBy('instance.id', 'DESC'); break; default: query.orderBy('instance.id', 'DESC'); break;
} }
......
...@@ -30,15 +30,13 @@ ...@@ -30,15 +30,13 @@
<option value="-followers">{{ i18n.ts.followers }} ({{ i18n.ts.ascendingOrder }})</option> <option value="-followers">{{ i18n.ts.followers }} ({{ i18n.ts.ascendingOrder }})</option>
<option value="+caughtAt">{{ i18n.ts.registeredAt }} ({{ i18n.ts.descendingOrder }})</option> <option value="+caughtAt">{{ i18n.ts.registeredAt }} ({{ i18n.ts.descendingOrder }})</option>
<option value="-caughtAt">{{ i18n.ts.registeredAt }} ({{ i18n.ts.ascendingOrder }})</option> <option value="-caughtAt">{{ i18n.ts.registeredAt }} ({{ i18n.ts.ascendingOrder }})</option>
<option value="+lastCommunicatedAt">{{ i18n.ts.lastCommunication }} ({{ i18n.ts.descendingOrder }})</option>
<option value="-lastCommunicatedAt">{{ i18n.ts.lastCommunication }} ({{ i18n.ts.ascendingOrder }})</option>
</MkSelect> </MkSelect>
</FormSplit> </FormSplit>
</div> </div>
<MkPagination v-slot="{items}" ref="instances" :key="host + state" :pagination="pagination"> <MkPagination v-slot="{items}" ref="instances" :key="host + state" :pagination="pagination">
<div class="dqokceoi"> <div class="dqokceoi">
<MkA v-for="instance in items" :key="instance.id" v-tooltip.mfm="`Last communicated: ${dateString(instance.lastCommunicatedAt)}\nStatus: ${getStatus(instance)}`" class="instance" :to="`/instance-info/${instance.host}`"> <MkA v-for="instance in items" :key="instance.id" v-tooltip.mfm="`Status: ${getStatus(instance)}`" class="instance" :to="`/instance-info/${instance.host}`">
<MkInstanceCardMini :instance="instance"/> <MkInstanceCardMini :instance="instance"/>
</MkA> </MkA>
</div> </div>
......
...@@ -22,7 +22,7 @@ const fetching = ref(true); ...@@ -22,7 +22,7 @@ const fetching = ref(true);
const fetch = async () => { const fetch = async () => {
const fetchedInstances = await os.api('federation/instances', { const fetchedInstances = await os.api('federation/instances', {
sort: '+lastCommunicatedAt', sort: '+latestRequestReceivedAt',
limit: 6, limit: 6,
}); });
instances.value = fetchedInstances; instances.value = fetchedInstances;
......
...@@ -153,7 +153,7 @@ onMounted(async () => { ...@@ -153,7 +153,7 @@ onMounted(async () => {
}); });
os.api('federation/instances', { os.api('federation/instances', {
sort: '+lastCommunicatedAt', sort: '+latestRequestReceivedAt',
limit: 25, limit: 25,
}).then(res => { }).then(res => {
activeInstances = res; activeInstances = res;
......
...@@ -44,7 +44,7 @@ let key = $ref(0); ...@@ -44,7 +44,7 @@ let key = $ref(0);
const tick = () => { const tick = () => {
os.api('federation/instances', { os.api('federation/instances', {
sort: '+lastCommunicatedAt', sort: '+latestRequestReceivedAt',
limit: 30, limit: 30,
}).then(res => { }).then(res => {
instances.value = res; instances.value = res;
......
...@@ -58,7 +58,7 @@ const fetching = ref(true); ...@@ -58,7 +58,7 @@ const fetching = ref(true);
const fetch = async () => { const fetch = async () => {
const fetchedInstances = await os.api('federation/instances', { const fetchedInstances = await os.api('federation/instances', {
sort: '+lastCommunicatedAt', sort: '+latestRequestReceivedAt',
limit: 5, limit: 5,
}); });
const fetchedCharts = await Promise.all(fetchedInstances.map(i => os.apiGet('charts/instance', { host: i.host, limit: 16, span: 'hour' }))); const fetchedCharts = await Promise.all(fetchedInstances.map(i => os.apiGet('charts/instance', { host: i.host, limit: 16, span: 'hour' })));
......
...@@ -54,7 +54,7 @@ function onInstanceClick(i) { ...@@ -54,7 +54,7 @@ function onInstanceClick(i) {
useInterval(() => { useInterval(() => {
os.api('federation/instances', { os.api('federation/instances', {
sort: '+lastCommunicatedAt', sort: '+latestRequestReceivedAt',
limit: 25, limit: 25,
}).then(res => { }).then(res => {
activeInstances = res; activeInstances = res;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment