* This fixes an issue where reports are always retried regardless of status
This commit is contained in:
parent
bef0e827a2
commit
417bd9b3e3
|
@ -354,7 +354,7 @@ describe('Worker class', function () {
|
|||
});
|
||||
|
||||
describe('query body', function () {
|
||||
const conditionPath = 'query.constant_score.filter.bool';
|
||||
const conditionPath = 'query.bool.filter.bool';
|
||||
const jobtype = 'test_jobtype';
|
||||
|
||||
beforeEach(() => {
|
||||
|
@ -377,7 +377,7 @@ describe('Worker class', function () {
|
|||
it('should search by job type', function () {
|
||||
const { body } = getSearchParams(jobtype);
|
||||
const conditions = get(body, conditionPath);
|
||||
expect(conditions.filter).to.eql({ term: { jobtype: jobtype } });
|
||||
expect(conditions.must).to.eql({ term: { jobtype: jobtype } });
|
||||
});
|
||||
|
||||
it('should search for pending or expired jobs', function () {
|
||||
|
@ -388,7 +388,7 @@ describe('Worker class', function () {
|
|||
// this works because we are stopping the clock, so all times match
|
||||
const nowTime = moment().toISOString();
|
||||
const pending = { term: { status: 'pending' } };
|
||||
const expired = { bool: { filter: [
|
||||
const expired = { bool: { must: [
|
||||
{ term: { status: 'processing' } },
|
||||
{ range: { process_expiration: { lte: nowTime } } }
|
||||
] } };
|
||||
|
@ -400,6 +400,12 @@ describe('Worker class', function () {
|
|||
expect(expiredMatch).to.not.be(undefined);
|
||||
});
|
||||
|
||||
it('specify that there should be at least one match', function () {
|
||||
const { body } = getSearchParams(jobtype);
|
||||
const conditions = get(body, conditionPath);
|
||||
expect(conditions).to.have.property('minimum_should_match', 1);
|
||||
});
|
||||
|
||||
it('should use default size', function () {
|
||||
const { body } = getSearchParams(jobtype);
|
||||
expect(body).to.have.property('size', defaults.size);
|
||||
|
|
|
@ -350,17 +350,20 @@ export class Worker extends events.EventEmitter {
|
|||
excludes: [ 'output.content' ]
|
||||
},
|
||||
query: {
|
||||
constant_score: {
|
||||
bool: {
|
||||
filter: {
|
||||
bool: {
|
||||
filter: { term: { jobtype: this.jobtype } },
|
||||
minimum_should_match: 1,
|
||||
must: { term: { jobtype: this.jobtype } },
|
||||
should: [
|
||||
{ term: { status: 'pending' } },
|
||||
{ bool: {
|
||||
filter: [
|
||||
{ term: { status: 'processing' } },
|
||||
{ range: { process_expiration: { lte: nowTime } } }
|
||||
] }
|
||||
{
|
||||
bool: {
|
||||
must: [
|
||||
{ term: { status: 'processing' } },
|
||||
{ range: { process_expiration: { lte: nowTime } } }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue